js 爬虫抓取网页数据(网页极速版多使用IP,代理IP不使用cookie多利用线程分布式)
优采云 发布时间: 2021-10-03 11:28js 爬虫抓取网页数据(网页极速版多使用IP,代理IP不使用cookie多利用线程分布式)
建议:
减少列表数据并保存页面
关注网络速度版本、应用程序版本
多用途IP、动态UA、代理IP、无Cookie
多线程分布式
===================================
Selenium可以接受指示。获取所需的数据或错误屏幕截图
无界面的Phantom JS浏览器(可保存截图)
加载到内存并执行JS
需要下载
解决方案:
下载连接
from selenium import webdriver
import time
d1=webdriver.Chrome(r"C:\Users\xzq\Downloads\chromedriver_win32 (1)\chromedriver.exe")
d1.get("https://login.taobao.com/member/login.jhtml?spm=a21bo.2017.754894437.1.5af911d9bW79Rz&f=top&redirectURL=https%3A%2F%2Fwww.taobao.com%2F")
d1.find_element_by_id("J_Quick2Static").click()
time.sleep(3)
d1.find_element_by_id("TPL_username_1").send_keys("扯淡灬孩子02547915")
d1.find_element_by_id("TPL_password_1").send_keys("a13736784065")
d1.find_element_by_id("J_SubmitStatic").click()
求解滑动检查
button = d1.find_element_by_id('nc_1_n1z')# 找到“蓝色滑块”
action = webdriver.ActionChains(d1)# 实例化一个action对象
action.click_and_hold(button).perform()# perform()用来执行ActionChains中存储的行为
action.reset_actions()
action.move_by_offset(280, 0).perform()# 移动滑块
action.release()
=================================================================================================
解决方案验证码
一,。相同的URL将生成相同的验证码URL
直接向编码平台申请验证码地址进行处理
二,。相同的URL将生成具有不同验证码的URL
1.实例化会话
2.使用会话请求页面获取验证码地址
3.发送会话请求验证代码并使用该代码识别
4.使用会话发送帖子
遇到使用selenium的验证代码:
Selenium请求登录页面,同时获取验证码地址
在登录驱动器中获取cookie,并将其提交给请求进行处理和标识
或者使用屏幕截图工具查找验证代码并使用它进行识别
============================================================================================
获取文本和属性
1.首先找到元素,然后调用.Text或get\ux。归属者
find_u元素返回一个元素。如果没有元素,将报告错误
查找元素返回一个空列表
==================================================================
求解查找元素失败的方法
页面中可能有iframe和frame
需要先打电话吗
d1.切换到帧(“帧名称”)
然后获取输入内容
==================================================================
=======================================================================
解决新页面的后续请求以获取错误(在加载完成之前获取数据)
===================================================================================================================================================
使用Orc身份验证码**
1.安装PIL(Python 3中没有可供下载的直接PIL版本。您可以先使用pilot)
2.从PIL导入图像导入
import pytesseract
from PIL import Image
img=Image.open("0014076720724832de067ce843d41c58f2af067d1e0720f000[1].jpg")
print(pytesseract.image_to_string(img))
如果报告错误,请在下载后参考pytestseract中的testseract(因为未安装Orc)\在CMD下添加tesserac.exet的路径