链家二手房数据自动化点选验证码

前言:本次分享目的为研究 DrissionPage的相关使用以及xpath/css语法的应用及其点选验证码的机制,切勿作为商业目的,恶意采集或者网站,自觉遵守相关法律法规

网址:

aHR0cHM6Ly9jcy5saWFuamlhLmNvbS9lcnNob3VmYW5nL3BnMS8=


点击下一页后弹出人机验证

点击开始验证后 会有三种类型点选验证码

点字、点图、按语序

1、环境配置

pip install DrissionPage//安装模块

官方文档:https://www.drissionpage.cn/browser_control/intro

新建一个临时py文件,然后填入个人电脑里面的浏览器可执行文件路径,然后运行即可

python 复制代码
dp = ChromiumPage()
path = r'D:\chrome\chrome.exe'# 按需修改为实际;浏览器路径
ChromiumOptions.set_browser_path(path).save()

保存后,以后都不需要,配置路径了

2. 访问网站
python 复制代码
from DrissionPage import ChromiumPage, ChromiumOptions
dp = ChromiumPage()
dp.get('https://cs.lianjia.com/ershoufang/pg1/')# 按需修改
3. 获取数据

元素定位:(静态网页)

监听数据:(f动态网页/专门的数据接口)

  • 通过元素面板中对应标签

把每个房源数据当作整体->对应的元素标签

每个房源数据内容都在li标签中存在

利用CSS/Xpath匹配表数据标签

我这里用的是css

python 复制代码
dp.eles('css:')# 元素定位使用css选择器匹配多个标签

可以查看右侧css选择器语法,但不通用

4. 保存数据
python 复制代码
# 导入CSV模块
import csv
# 创建文件对象
f=open('data.csv',mode='w',encoding='utf-8',newline='''
# 字典写入的方法fieldnames->字段名,使用dit中键
csv_writer=csv.DictWriter(f, fieldnames=[])
# 写入表头
csv_writer.writeheader()
# 数据
dit={}
# 写入数据
csv_writer.writerow(dit)
5.翻页处理

先触发人机验证 然后载触发点选

自动化点选识别
  1. 判断页面是否有验证码

有验证码的链接有特点的

python 复制代码
url = dp.url
if'captcha' in url:
     # 验证码识别
     print('有验证码')
else:
     # 正常采集数据
     get_content()
  1. 出现验证码后

我个人用的是超级鹰,用其他打码平台效果差不多,原理就是弹出人机验证后,通过css定位自动点击先过人机验证码

python 复制代码
 dp.ele('text=点击按钮开始验证').click()
        time.sleep(4)

等待几秒后弹出点选验证

python 复制代码
 # 定位验证码图片标签
        img = dp.ele('css:.geetest_box')
        # 截取验证码图片
        img.get_screenshot('bg.png')

截取图片上传打码平台,计算坐标

python 复制代码
def get_codex():
    chaojiying = Chaojiying_Client('用户账号', '用户密码', '软件ID')
    im = open('bg.png', 'rb').read()
    print(chaojiying.PostPic(im, 9103))
    x_y = chaojiying.PostPic(im, 9103)['pic_str']# 9103验证码类型
    return x_y.split('|')

利用打码平台进行验证码识别,获取坐标

通过验证后,在返回接口中获取uuid列表,提取uuid即可

效果如上

相关推荐
2601_967980111 小时前
Python自动化办公:模块、库与样式调整教程
python·excel·自动化办公·openpyxl·样式调整
长沙三为智能科技1 小时前
GEO与传统SEO的5个关键差异:排名与被引用、关键词与答案型的全维度对比
python·aigc·seo·ai搜索·geo优化
量化分析码农3 小时前
【Python量化趋势跟踪实战 02】突破买入总被假突破坑:通道系统与入场时机
python
Agent世界3 小时前
多平台登录态巡检:cookie 判据为什么会撒谎
python
goehou3 小时前
让 AI 替我操作这台电脑,先把手能伸多远定下来
windows·自动化·权限管理·ai agent
量化分析码农3 小时前
【Python量化趋势跟踪实战 01】均线多头排列就是趋势开始吗:过滤与确认
python
用户298698530144 小时前
Python 实战:把代码写入 Word 文档的两种实现方式
后端·python·api
小小张说故事4 小时前
Python 里 pickle 到底存了什么:拆开 __reduce__、__getstate__ 和那串能执行代码的字节码
python
reasonsummer4 小时前
【教学类-150-03】20261108蝴蝶连连看html(一页2个版面、3个版面)
python·html
用户019027581614 小时前
用 Polars 快速分析 A 股 K 线:比 pandas 更快的列式处理
python