爬虫二(获取动态的页面数据)

建议:
减少抓列表数据,保存页面
关注网页极速版,APP版
多使用IP,动态UA,代理IP,不使用cookie
多利用线程分布式

===================================
selenium 可以接受指令。获取需要的数据,或者报错截屏

PhantomJS 无界面浏览器(可以截屏保存)
加载到内存然后执行JS
怎么使用selenum
需要下载
解决方案:
https://www.cnblogs.com/zhaijiahui/p/8954304.html
下载连接
https://chromedriver.storage.googleapis.com/index.html

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()

=================================================================================================
解决验证码
1同一个url 会产生同一个验证码的url
直接request请求验证码地址 交给打码平台处理

2同一个url 会产生不同验证码的url
1.实例化session
2.使用session 请求页面,获取验证码地址
3.发送session请求验证码,使用打码识别
4.使用session发送post
使用selenium 遇到验证码:
selenium请求登陆页面,同时拿到验证码地址
获取登陆drive中的cookie,交给request处理识别
或者使用截图工具找出验证码 用打马识别

============================================================================================

在这里插入图片描述

在这里插入图片描述
获取文本和属性
1.先定位到元素,然后调用.text 或者get_attributee
find_element 返回的是一个element 如果没有就会报错
find_elemants 返回是的一个列表,没有就是空列表

==================================================================
解决find_element 失败的方法
可能页面中有iframe,frame
需要先调用
d1.switch_to.frame(“framae_name”)
然后再取输入内容

==================================================================
在这里插入图片描述

=======================================================================
解决后续请求新的页面获取元素时报错(加载未完成就获取数据)

在这里插入图片描述

===================================================================================================================================================

使用ORC识别验证码**

1.安装PIL (python3 中没有直接的PIL 版本供应下载 可以先使用 Pillow)
2.导入from PIL import Image

import  pytesseract
from  PIL import  Image
img=Image.open("0014076720724832de067ce843d41c58f2af067d1e0720f000[1].jpg")
print(pytesseract.image_to_string(img))

如果报错请参考(原因是因为没有安装ORC)下载后在pytesseract的tesseract_cmd下添加tesserac.exet路径即可
无法加载中文
添加系统变量

详细https://blog.csdn.net/wang_hugh/article/details/80760940
下载方法https://blog.csdn.net/ocean35/article/details/82942382

============================================================================================================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值