分享好友 最新动态首页 最新动态分类 切换频道
python如何爬取二维码登录跳转的网页
2024-12-26 11:59


python如何爬取二维码登录跳转的网页

这是一个使用Python爬取公众号二维码的项目,爬取https://data.wxb.com(微信公众号推广平台) 下的所有公众号。同时记录一下整个过程中遇到的问题。

  • http: urllib3
  • db: pymysql
  • parser: beautifulsoup,

单页面分析

  • 请求 https://data.wxb.com/rank?category=1&page=1 (第一个类目下面的第一页,每页有20条数据)。
    查看请求过程以及response发现,返回数据都是在

数据解析就非常简单了,使用正则匹配到对应的json就好了,显得非常完美了,但是意想不到的事情还在后面。

  • 发送请求
  • 设置header

“` python
user_agents = [
‘Opera/9.25 (Windows NT 5.1; U; en)’,
‘Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)’,
‘Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)’,
‘Mozilla/5.0 (X11; U; linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12’,
‘Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9’
“Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)”,
“Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)”,
‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3298.4 Safari/537.36’
]

header = {
‘User-Agent’: user_agents[random.randint(0, 6)],
‘cookie’: ‘your cookie’
}
“`python

  • 数据解析
  • 从上面过程中,最终获取到了对应的json数据,json中包含了对应的category/source,以及每一个category下面的source的数量 totalCount
  • 通过json数据,抽象出三个基本的方法,
  • json 2 object
  • 定义实体
  • 对象转换
  • 数据持久化
    数据批量插入,在刚开始做批量的时候,数据库的完整性约束,导致一些数据插入失败,整个批量回滚。后来放宽数据库完整性约束,批量处理完毕后,在对数据进行二次清洗。

批量爬取

单个页面的爬取数据,分析数据,持久化完成之后。对于批量,直接for循环即可实现。但是现实并非如此完美,被爬取数据的网站做了限流控制,访问的时候出现 503 拒绝服务。

  • 应对策略1
    模拟浏览器,设置不同代理,如上代码中设置了7种不同的代理,随机使用其中一个,这样效果提升了不少。
  • 应对策略2
    header添加cookies,因为网站做了限制,当访问第二页的时候,需要让你登录,随便注册个账号,拿到对应的cookie,添加到header里面,完美。

当爬取差不多7-8页数据的时候,会出现一直报错(503),刷新页面发现,及时注册账号,添加cookie,网站也做了访问限制,需要输入验证码。

  • 应对策略
    这个比较low了,当出现503的时候,会直接将请求sleep住,人肉输入验证码,重复上次sleep的请求。大家有什么好的方法,可以讨论一下。
  1. 使用urllib3,完成http请求。
  2. bytes to str : bytes.decode(‘utf-8’)解码即可
  3. InsecureRequestWarning: Unverified HTTPS request is being made. https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings。https需要添加证书。
    4.被爬网站存在反爬限制,需要设置代理。
    result = http.request(‘GET’, url, headers={‘User-Agent’: ‘User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36’})
  4. 携带cookie模拟登陆
    header ={
    ‘user-agent’:’agent’,
    ‘cookie’:’your cookie’
    }
    http = urllib3.PoolManager()
    result = http.request(url,header=header)
  5. insert category has error,params:{None},error:{unsupported operand type(s) for %: ‘function’ and ‘tuple’}
    sql :insert_cate = “INSERT INTO category (cate_id, name) VALUES (%d, %s)”
    exe:cursor.execute(insert_cate % (category.id, category.name))
    更正为:
    cursor.execute(insert_cate, (category.id, category.name))
  6. {%d format: a number is required, not str}
    在数据表中id使用的类型是int, 传参的时候使用%d。导致上面报错,其实pymysql在执行的时候,会自动转换类型。所以%d可以改成%s。
最新文章
谷歌 Authenticator 下载 v6.0
  【软件介绍】  谷歌 Authenticator 官方下载(易速软件园提供下载)是一款主打个人信息安全保密存储服务功能以便小伙伴们添加各种账户密码和隐私信息内容来存储管理的Android系统工具类应用软件。在这款软件中,小伙伴们是可以选择账
诡异世界:这个医生太恐怖
神品屋提示: ① 文章阅读页面,方向键左右(← →)前后翻页,回车键返回书目录。 ② 如果您发现本书内容有与法律抵触之处,请马上向本站举报,赖以生存的神品屋需要您们的建议和更多的参与! ③ 如果您发现诡异世界:这个医生太恐怖最新章
太仓市鑫卡螺成功取得冷却设备专利,降低紧固件铸造生产成本
金融界2024年12月13日消息,近年来,随着制造行业的不断发展,对于生产效率和成本控制的需求也愈加显著。近日,太仓市鑫卡螺紧固件有限公司迎来了一个振奋人心的消息:该公司获得了一项名为“一种紧固件铸造用冷却设备”的专利,专利授权公
高清美女写真 AI 绘画工具评测:用搜狐简单AI 一键生成你的梦中情人!
Artbreeder:这是一个广受欢迎的在线平台,依靠遗传算法生成精美的人像图像。用户可以通过调整不同的参数,包括眼睛、发色、肤色等,创建出属于自己的独特形象。Artbreeder的优势在于,生成的图片质量相当高,且可以不断进行调整和优化。然
谷歌SEO优化,有哪些关键问题?
在数字营销的世界里,谷歌SEO优化无疑是每一位网站运营者必须深入研究的课题。基于我多年的实战经验和对行业的深刻理解,我发现,掌握谷歌SEO的关键要素,不仅能够提升网站的排名,更能吸引更多的潜在客户,实现商业价值的最大化。今天,我
进阶Frida--Android逆向之Hook动态加载dex(三)(上篇)
Dexcalibur Dexcalibur是一个专注于仪器自动化的Android逆向工程平台。 它的特殊性是使用动态分析来改进静态分析的启发式方法。 它旨在自动化与动态仪表相关的无聊任务,例如: 在运行时反编译/取消拦截的字节码编写钩子代码并管理大量钩子
共享购模式的魅力:社交电商系统平台的积分运营策略了解吗?社交电商系统+聚合电商模式+私域电商搭建
共享购模式的魅力:社交电商系统平台的积分运营策略了解吗?社交电商系统+聚合电商模式+私域电商搭建,微三云麦超总监前文阅读:微三云,移动应用系统提供商,拥有单品卖货、区/块/链卖货、直播卖货、品牌新零售卖货、社区新零售卖货、小程
文章写作实现智能化转型,百度AI写作生成器带领你进入新时
随着人工智能技术的不断发展,传统的文章写作方式正在经历一次革命性的转变。百度AI写作生成器作为行业内的领导者,以其强大的智能化能力和高效的写作效果,引领着人们进入了一种全新的写作方式。 傻瓜式操作简单易学,从此告别繁琐的撰稿
各种河道清淤技术详解
01常规清淤方式1、干式清淤干式施工法将河道进行分段并修筑围堰,之后利用水泵将围堰范围内的河泊积水排干,将水排干之后再进行清淤施工,清淤常根据施工现场场地条件采用长臂式挖掘机开挖或人工开挖的方式沿河道两岸进行清淤。干式清淤法
网站排名优化哪里实惠,探索性价比高的SEO服务,网站排名优化谁家好
探索性价比高的SEO服务,网站排名优化实惠之选。在众多SEO服务提供商中,选择一家能够提供高效、专业且价格合理的服务至关重要。推荐选择具有丰富经验和成功案例的SEO公司,他们能够根据网站特点和目标受众,制定针对性的优化策略,提升网
相关文章
推荐文章
发表评论
0评