Chinaunix首页 | 论坛 | 博客
  • 博客访问: 188571
  • 博文数量: 86
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 876
  • 用 户 组: 普通用户
  • 注册时间: 2018-03-27 14:41
个人简介

宁为玉碎,不为瓦全

文章分类
文章存档

2024年(30)

2023年(28)

2022年(17)

2021年(10)

2019年(1)

我的朋友

分类: IT业界

2023-02-09 16:53:50

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

点击(此处)折叠或打开

  1. #! -*- encoding:utf-8 -*-

  2.     import requests
  3.     import random

  4.     # 要访问的目标页面
  5.     targetUrl = ""

  6.     # 要访问的目标HTTPS页面
  7.     # targetUrl = ""

  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.、图片验证码,图片验证码是另一种{BANNED}最佳常用的反爬技术,现在出现了各种更奇葩,难度更大的验证手段。5、登录请求,有些内容需要登录后才能访问,但如果是自己的账号,那一般是没问题的。

阅读(245) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~