设为首页收藏本站language 语言切换
查看: 859|回复: 1
收起左侧

[问题求助] 常见的python爬取难点

[复制链接]
发表于 2023-2-9 16:28:35 | 显示全部楼层 |阅读模式
Python很强大,熟练的程序员可以在5分钟内写出一个有价值的爬虫,比如抓取旅游信息、抓取工商信息、抓取商品信息等都是有价值的数据网站。但像这样的有价值的网站是不会任由你无限爬取的,有爬取就有反抗。这是一场网站和程序员之间的一种博弈,最后能获取到多少的数据全凭你的技术能力。今天就重点来聊下这个网站之间的博弈,彼此之间的招数就是你抓他就防,你改进抓取方法,他就提高防抓手段,总之不会让人随便你抓爬取。
从爬虫技术角度讲,只要你能通过网页上看到的内容,就一定能抓!无非就是抓取难度的大小。接下来小编总结了爬虫的几个难点以及如何解决的思路。
1、如何判定网站是否能抓取,一般的能抓取的网站都会有robots.txt,这个是网站写给爬虫的声明,里面写明了那些内容不能抓取,robots.txt一般放在网站的根目录下。
2、复杂多变的网页结构,通常会有这2种表现方式。1.同一个网页在显示不同的内容时会有不同的结构。
比如商品详情页,不同的商品,使用不同的网页模板,这是很正常的情况。2.网页功能或者设计风格的改变。一般的爬虫都是根据网页结构,使用xpath去解析内容,一旦结构变了,就解析不出来了。
3、IP封锁,iP封锁是常用的反抓取手段。当网站发现某个IP地址发送请求过多的时候,会临时或者永久的封锁这个IP的请求。一般情况下直接上代理就可以,最好是选择付费代理,质量,稳定性更有保障,如果不知道如何去选择,可以直接使用这家http://www.16yun.cn/help/,联系客户先测试后购买。代理的添加方式如下所示:
  1. #! -*- encoding:utf-8 -*-

  2.     import requests
  3.     import random

  4.     # 要访问的目标页面
  5.     targetUrl = "http://httpbin.org/ip"

  6.     # 要访问的目标HTTPS页面
  7.     # targetUrl = "https://httpbin.org/ip"

  8.     # 代理服务器(产品官网 www.16yun.cn)
  9.     proxyHost = "t.16yun.cn"
  10.     proxyPort = "31111"

  11.     # 代理验证信息
  12.     proxyUser = "username"
  13.     proxyPass = "password"

  14.     proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
  15.         "host" : proxyHost,
  16.         "port" : proxyPort,
  17.         "user" : proxyUser,
  18.         "pass" : proxyPass,
  19.     }

  20.     # 设置 http和https访问都是用HTTP代理
  21.     proxies = {
  22.         "http"  : proxyMeta,
  23.         "https" : proxyMeta,
  24.     }


  25.     #  设置IP切换头
  26.     tunnel = random.randint(1,10000)
  27.     headers = {"Proxy-Tunnel": str(tunnel)}



  28.     resp = requests.get(targetUrl, proxies=proxies, headers=headers)

  29.     print resp.status_code
  30.     print resp.text
复制代码

4.、图片验证码,图片验证码是另一种最常用的反爬技术,现在出现了各种更奇葩,难度更大的验证手段。
5、登录请求,有些内容需要登录后才能访问,但如果是自己的账号,那一般是没问题的。
发表于 2023-5-26 23:03:59 | 显示全部楼层
希望能有更詳細
沙发 2023-5-26 23:03:59 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-2 18:11 , Processed in 0.091690 second(s), 24 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表