泰坦科技网站建设,js代码 嵌入网站,大连模板建站平台,网站建设策划书是由谁编写的目录
上一篇文章
本章内容
设置浏览器为运行结束后不关闭#xff08;可选#xff09;
定位到搜索框的xpath地址
执行动作
获取cookie
保存为json文件
修改cookie的sameSite值并且导入cookie
导入cookie#xff08;出错#xff09;
导入cookie#xff08;修改后可选
定位到搜索框的xpath地址
执行动作
获取cookie
保存为json文件
修改cookie的sameSite值并且导入cookie
导入cookie出错
导入cookie修改后
最后出现页面
需要注意的问题
所有代码
总结 上一篇文章
用python来爬取某鱼的商品信息1/2_木木em哈哈的博客-CSDN博客本章讲理论后面一节讲代码拿来练练手的练练selenium包实战一下本来想拿来练手的没想到他喵的有挺多防爬的直接开局就困难难度我靠凸(艹皿艹 )找到可以爬取的网站然后添加cookie然后刷新界面就可以发现搜索结果出来了这一次实战经历真的让我遇到了selenium许多奇奇怪怪的反爬手段也是让我可以大幅度提升自己实战经验的一个经历前前后后排bug绕反爬这一个项目打了整整两天。累diethttps://blog.csdn.net/mumuemhaha/article/details/132238660?spm1001.2014.3001.5502
本章内容
主要讲的是上一章的代码实现 导入所需要的程序包
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
import time
import json
设置浏览器为运行结束后不关闭可选
之后先设置自己想要搜索的内容并且把浏览器设置为允许结束后不关闭并且打开要爬取的咸鱼网站可设可不设
input_1input(输入想要搜索的内容:)option webdriver.ChromeOptions()
option.add_experimental_option(detach, True)# 注意此处添加了chrome_options参数
driver webdriver.Chrome(chrome_optionsoption)
driver.get(https://h5.m.goofish.com/app/idleFish-F2e/fish-mini-pha/search.html?spma2170.tb_mini_index.0.0)
定位到搜索框的xpath地址
driver_1driver.find_element(byxpath,value/html/body/div/div/div[1]/input)
执行动作
执行动作调用鼠标api点击刚刚定位的搜索框然后输入input_1的值并且回车
ActionChains(driver) \.move_to_element(driver_1) \.click_and_hold() \.pause(1) \.send_keys(input_1) \.key_down(Keys.ENTER)\.perform()time.sleep(1)
中间的.pause(1)以及time.sleep(1)是等待一秒钟的时间保险起见怕网页没有加载好或者你设置一个selenium等待函数更保险 获取cookie
接下来就是获取cookie获取cookie方法上一章讲了 在你的浏览器上下载cookie editor插件登录不要用运行python时跳出的浏览器正常打开浏览器这样不会跳验证码。。。即使跳了也可以手动成功过导出你的cookie
保存为json文件
然后新建一个json格式的文件并且把它命名为cookie.json 修改cookie的sameSite值并且导入cookie
导入cookie出错
cookiesjson.load(open(cookie.json, r))
for cookie in cookies:driver.add_cookie(cookie)
但是
前面讲过直接导入会报错 assert cookie_dict[‘sameSite‘] in [‘Strict‘, ‘Lax‘] AssertionError()
由于这里语法规定sameSite必须为‘Strict‘, ‘Lax‘两个之一不然就报错
所以我们要遍历字典并且把字典中的sameSite设置为Strict
导入cookie修改后
所以代码改为
cookiesjson.load(open(cookie.json, r))
for cookie in cookies:ifsameSite in cookie:cookie[sameSite] Strictdriver.add_cookie(cookie)
driver.refresh()
注意导入cookie后要用driver.refresh()刷新
打印源代码 然后打印网页的源代码注意要等3秒加载元素或者用re库带的筛选筛选你想要的的元素比如商品链接价格以及介绍
time.sleep(3)
print(driver.page_source) 最后出现页面 需要注意的问题
首先要说的是这个通过python不如通过app抓包来的稳定页面中你登录的cookie的失效时间是不确定的所以你可能需要经常更新cookie看个人情况无法频繁比如5分钟一次搜索否则会跳滑块验证或者你有多个账号也可以搞大概也就这个流程写出来的代码只是提取出来网页源代码——其实都提取出网页源代码了使用就只有一个筛选了csdn上有大把的优质博主和大佬教你通过源代码过滤有用的信息当然如果需要的话我可以再水一篇博客它理论上可以关联到钉钉机器人或者是QQ机器人上实现定时推送咸鱼信息啊你问我为什么不继续写因为还没学不然这期标题末尾就不是2/2而是2/3了咳咳咳...u1s1钉钉应该是有教程教的傻妞机器人应该也可以执行python脚本的“按理”来说不会很难实现实在不行我再去学吧累die...
所有代码
所有代码附上吧
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
import time
import jsoninput_1input(输入想要搜索的内容:)# 不自动关闭浏览器
option webdriver.ChromeOptions()
option.add_experimental_option(detach, True)# 注意此处添加了chrome_options参数
driver webdriver.Chrome(chrome_optionsoption)
driver.get(https://h5.m.goofish.com/app/idleFish-F2e/fish-mini-pha/search.html?spma2170.tb_mini_index.0.0)driver_1driver.find_element(byxpath,value/html/body/div/div/div[1]/input)ActionChains(driver) \.move_to_element(driver_1) \.click_and_hold() \.pause(1) \.send_keys(input_1) \.key_down(Keys.ENTER)\.perform()time.sleep(1)cookiesjson.load(open(cookie.json, r))
for cookie in cookies:ifsameSite in cookie:cookie[sameSite] Strictdriver.add_cookie(cookie)
driver.refresh()time.sleep(3)
print(driver.page_source)
总结
这些代码搞得我晕头转向的尤其是那个内嵌的登录页面让我走了很多弯路但是对于这个库的学习应该也算是初窥门径吧如果有大佬有优化的地方欢迎指出真的没学多深很容易出错的