当前位置: 首页 > news >正文

手机做简单的网站怎么自己创建一个网站

手机做简单的网站,怎么自己创建一个网站,阿里云上用wordpress,sdk广告接入目录 前言 1 完整代码 2 代码解读 2.1 导入模块 2.2 定义 TaoBao 类 2.3 search_infor_price_from_web 方法 2.3.1 获取下载路径 2.3.2 设置浏览器选项 2.3.3 反爬虫处理 2.3.4 启动浏览器 2.3.5 修改浏览器属性 2.3.6 设置下载行为 2.3.7 打开淘宝登录页面 2.3.…目录 前言 1 完整代码 2 代码解读 2.1 导入模块 2.2 定义 TaoBao 类 2.3 search_infor_price_from_web 方法 2.3.1 获取下载路径 2.3.2 设置浏览器选项 2.3.3 反爬虫处理 2.3.4 启动浏览器 2.3.5 修改浏览器属性 2.3.6 设置下载行为 2.3.7 打开淘宝登录页面 2.3.8 登录淘宝 2.3.9 搜索商品并提取信息 2.3.10 提取商品信息 3.11 保存数据到Excel 2.4 执行脚本 3 总结与思考 前言 Selenium作为主流的Web自动化测试框架在数据采集领域也有广泛应用。本文将分享如何使用Selenium实现淘宝物资价格信息的爬取。目前代码还存在一些缺陷主要体现在1未能有效绕过淘宝的反爬虫机制2登录环节仍需人工干预。欢迎大伙在评论区分享解决方案。 1 完整代码 import datetime import os import timeimport pandas as pd import win32api import win32con from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import Byclass TaoBao():# 下载每月出门单信息def search_infor_price_from_web(self, path_diros.path.abspath(r.), descr_list[脱脂纱布, 机器人, 衬衫]):key1 win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,rSoftware\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders, 0,win32con.KEY_READ)download_path win32api.RegQueryValueEx(key1, Desktop)[0]download_path os.path.join(os.path.dirname(download_path), Downloads)print(download_path)# FileProcess().remove_assign_excel_file_in_path(download_path, key)# 重新从网站下载调拨文件print(浏览器设置默认信息如关闭下载保留提示)start_x_1 datetime.datetime.now()options Options()prefs {download.prompt_for_download: False, download.default_directory: download_path}options.add_experimental_option(prefs, prefs)options.add_experimental_option(excludeSwitches, [enable-automation]) # 这里去掉window.navigator.webdriver的特性options.add_argument(--disable-blink-featuresAutomationControlled)options.add_argument(--force-device-scale-factor1)options.add_argument(--start-maximized) # 最大化窗口options.add_experimental_option(excludeSwitches, [enable-automation]) # 禁用自动化栏options.add_experimental_option(useAutomationExtension,False) # 禁用自动化栏的原理将window.navigator.webdriver改为undefined。# 屏蔽密码提示框prefs {credentials_enable_service: False, profile.password_manager_enabled: False}options.add_experimental_option(prefs, prefs)# 反爬虫特征处理options.add_argument(--disable-blink-featuresAutomationControlled)# options.add_argument(--headless) # 无界面模式# options.add_argument(--disadle-gpu) # 禁用显卡# driver webdriver.Chrome(chrome_optionsoptions)driver webdriver.Chrome(optionsoptions)# 修改了浏览器的内部属性跳过了登录的滑动验证driver.execute_cdp_cmd(Page.addScriptToEvaluateOnNewDocument,{source: Object.defineProperty(navigator, webdriver, {get: () undefined})})# driver webdriver.Chrome()driver.command_executor._commands[send_command] (POST, /session/$sessionId/chromium/send_command)params {cmd: Page.setDownloadBehavior,params: {behavior: allow, downloadPath: download_path}}driver.execute(send_command, params)print(浏览器将打开已经进入)end_x_1 datetime.datetime.now()print(花费%s时长进入浏览器 % (end_x_1 - start_x_1))driver.maximize_window() # 最大化谷歌浏览器driver.implicitly_wait(10) # 隐性等待10s# driver.get(https://www.taobao.com)driver.get(https://login.taobao.com/member/login.jhtml)# 修改了浏览器的内部属性跳过了登录的滑动验证driver.execute_cdp_cmd(Page.addScriptToEvaluateOnNewDocument,{source: Object.defineProperty(navigator, webdriver, {get: () undefined})})# 手机扫码登入# 尝试输入密码try:time.sleep(3)# 输入账号密码username driver.find_element(By.ID, fm-login-id)# username.send_keys(jianfei.xu)username.send_keys(XXXXXX)time.sleep(10)password driver.find_element(By.ID, fm-login-password)# password.send_keys(0000000.)password.send_keys(XXXXX)time.sleep(10)# 点击登入driver.find_element(By.XPATH,/html/body/div/div[2]/div[3]/div/div/div/div[1]/div/form/div[6]/button).click()driver.implicitly_wait(10) # 隐式等待10stime.sleep(5)except:passtime.sleep(60)print(123)data_list []for search_str in descr_list:# 输入搜索框path /html/body/div[3]/div[2]/div[1]/div/div/div[3]/div/div[1]/form/div[4]/inputdriver.find_element(By.XPATH, path).clear()driver.find_element(By.XPATH, path).send_keys(search_str)time.sleep(2)# 查询path /html/body/div[3]/div[2]/div[1]/div/div/div[3]/div/div[1]/form/div[2]/buttondriver.find_element(By.XPATH, path).click()time.sleep(2)# 切换浏览器窗口handle driver.window_handles # 获取句柄得到的是一个列表driver.switch_to.window(handle[-1]) # 切换至最新句柄time.sleep(10)try:path /html/body/div[3]/div[3]/div[1]/div[1]/div/div[2]/div[3]text_str driver.find_element(By.XPATH, path).textexcept:passtry:path /html/body/div[3]/div[3]/div/div[1]/div/div[3]text_str driver.find_element(By.XPATH, path).textexcept:pass/html/body/div[3]/div[4]/div/div[1]/div/div[3]/div[3]/div/div[1]/a/div/div[1]/div[1]/img[1]/html/body/div[3]/div[4]/div/div[1]/div/div[3]/div[3]/div/div[2]/a/div/div[1]/div[1]/img/html/body/div[3]/div[4]/div/div[1]/div/div[3]/div[3]/div/div[3]/a/div/div[1]/div[1]/img/html/body/div[3]/div[4]/div/div[1]/div/div[3]/div[3]/div/div[4]/a/div/div[1]/div[1]/img# 对text_str进行数据提取print(text_str)data_dic {}data_dic[物资] search_strtext_list text_str.split(\n)print(text_list)ix 1for i in range(len(text_list)):each_str text_list[i]if each_str ¥:print()descr_picture_url os.path.join(path_dir, text_list[i - 1] .webp)print(descr_picture_url)print(text_list[i - 1]) # 描述print(text_list[i])print(text_list[i 1]) # 金额print(text_list[i 3]) # 地点data_dic[对比%s-描述 % str(ix)] text_list[i - 1]data_dic[对比%s-金额 % str(ix)] text_list[i 1]data_dic[对比%s-地点 % str(ix)] text_list[i 3]ix 1data_list.append(data_dic)print()print(text_str)# 关闭最新窗口# 跳转到新页面进行完一系列操作后driver.close() # 关闭新开的页面time.sleep(2)driver.switch_to.window(driver.window_handles[0]) # 跳转首页df pd.DataFrame(data_list)df.to_excel(temp123.xlsx)df pd.DataFrame(data_list)df.to_excel(temp123.xlsx)return df# 类引用 TaoBao().search_infor_price_from_web()这段代码是一个使用Selenium自动化工具从淘宝网站上抓取商品信息的Python脚本。代码的主要功能是通过模拟浏览器操作登录淘宝搜索指定商品并提取商品的价格、描述和地点等信息最后将这些信息保存到Excel文件中。以下是对上述代码的详细解读 2 代码解读 2.1 导入模块 import datetime import os import time import pandas as pd import win32api import win32con from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By datetime、os、time用于处理日期、时间和文件路径。 pandas用于数据处理和保存到Excel文件。 win32api、win32con用于访问Windows注册表获取下载路径。 selenium用于自动化浏览器操作模拟用户行为。 2.2 定义 TaoBao 类 class TaoBao(): 这个类封装了从淘宝网站抓取商品信息的功能。 2.3 search_infor_price_from_web 方法 def search_infor_price_from_web(self, path_diros.path.abspath(r.), descr_list[脱脂纱布, 机器人, 衬衫]): 这是类中的主要方法用于从淘宝网站抓取商品信息。 path_dir指定保存文件的路径默认为当前目录。 descr_list要搜索的商品列表默认为 [脱脂纱布, 机器人, 衬衫]。 2.3.1 获取下载路径 key1 win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,rSoftware\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders, 0,win32con.KEY_READ) download_path win32api.RegQueryValueEx(key1, Desktop)[0] download_path os.path.join(os.path.dirname(download_path), Downloads) print(download_path) 通过访问Windows注册表获取用户的桌面路径并将其修改为下载路径Downloads文件夹。 2.3.2 设置浏览器选项 options Options() prefs {download.prompt_for_download: False, download.default_directory: download_path} options.add_experimental_option(prefs, prefs) 设置Chrome浏览器的下载选项禁用下载提示并指定下载路径。 2.3.3 反爬虫处理 options.add_experimental_option(excludeSwitches, [enable-automation]) # 去掉window.navigator.webdriver的特性 options.add_argument(--disable-blink-featuresAutomationControlled) 通过修改浏览器选项避免被网站识别为自动化脚本。 2.3.4 启动浏览器 driver webdriver.Chrome(optionsoptions) 启动Chrome浏览器应用之前设置的选项。 2.3.5 修改浏览器属性 driver.execute_cdp_cmd(Page.addScriptToEvaluateOnNewDocument,{source: Object.defineProperty(navigator, webdriver, {get: () undefined})}) 通过执行Chrome DevTools Protocol命令修改浏览器的navigator.webdriver属性避免被检测为自动化工具。 2.3.6 设置下载行为 driver.command_executor._commands[send_command] (POST, /session/$sessionId/chromium/send_command) params {cmd: Page.setDownloadBehavior,params: {behavior: allow, downloadPath: download_path}} driver.execute(send_command, params) 设置浏览器的下载行为允许下载并指定下载路径。 2.3.7 打开淘宝登录页面 driver.get(https://login.taobao.com/member/login.jhtml) 打开淘宝的登录页面。 2.3.8 登录淘宝 username driver.find_element(By.ID, fm-login-id) username.send_keys(XXXXX) password driver.find_element(By.ID, fm-login-password) password.send_keys(XXXXX) driver.find_element(By.XPATH, /html/body/div/div[2]/div[3]/div/div/div/div[1]/div/form/div[6]/button).click() 通过输入用户名和密码点击登录按钮完成登录操作。 2.3.9 搜索商品并提取信息 for search_str in descr_list:driver.find_element(By.XPATH, path).clear()driver.find_element(By.XPATH, path).send_keys(search_str)driver.find_element(By.XPATH, path).click() 遍历descr_list中的每个商品名称输入搜索框并点击搜索按钮。 2.3.10 提取商品信息 text_str driver.find_element(By.XPATH, path).text text_list text_str.split(\n) 从搜索结果页面中提取商品信息并将其拆分为列表。 3.11 保存数据到Excel df pd.DataFrame(data_list) df.to_excel(temp123.xlsx) 将提取的商品信息保存到Excel文件中。 2.4 执行脚本 TaoBao().search_infor_price_from_web() 创建TaoBao类的实例并调用search_infor_price_from_web方法执行整个抓取过程。 3 总结与思考 这段代码通过Selenium模拟浏览器操作实现了从淘宝网站抓取商品信息的功能。代码中使用了多种反爬虫技术避免被网站检测为自动化脚本。最终抓取到的商品信息被保存到Excel文件中便于后续分析和处理。
http://www.w-s-a.com/news/814370/

相关文章:

  • 舟山高端网站设计广州优化排名推广
  • 哪个网站做免费广告好上海人才网站
  • cn域名做网站竞价推广代理
  • 省建设干部培训中心网站网站地图1 500 怎么做
  • 制作一个网站需要哪些人网站建设经营服务合同
  • 山东省住房和城乡建设厅官方网站网易发布广州
  • 长沙设计网站效果设计师灵感网站
  • 做网站php都用什么框架把asp.net写的网站别人怎么访问
  • 网站建设捌金手指下拉六正规的代运营公司
  • 自己申请网站空间冀州建网站
  • 哈尔滨旅游团购网站建设江苏建设工程建设网
  • 在郑州做网站茶叶网站建设网页设计制作
  • 58做网站吗南京有关制作网站的公司
  • 申请建设门户网站的申请先做网站还是先申请域名
  • 门户网站怎么做seo玩具外贸好做吗
  • 网页设计模板的网站黄埔营销型网站建设
  • 企业为什么要建立网站江苏高校品牌专业建设工程网站
  • 网站建设公司需要交税么福建省城乡建设厅网站
  • dedecms网站首页网站正在建设中 源码下载
  • 论坛网站有哪些怎么wordpress主题
  • 网站搭建中企动力第一返利的网站怎么做
  • 在哪网站可以做农信社模拟试卷优衣库网站建设的目的
  • 杭州网站建设ttmwl网络平台推广公司
  • 工作室网站技能培训班
  • 东丰网站建设万盛网站制作
  • 安徽黄山网站建设wordpress 公众号 获取密码
  • 自己电脑做网站模板腾讯网站建设分析
  • 如何增加网站反链虚拟主机 2个网站
  • 手机网站调用分享wordpress.org移除
  • 工业和信息化部网站备案系统查询市场调研表模板