您的位置:首页 >新闻资讯 > 正文

代理IP反爬虫案例操作分享

来源:互联网 作者:admin 时间:2019-09-24 15:23:27

  爬虫、反爬虫、反反爬虫就像是一条麻花绳,它们之间的关系错综复杂,互为衍生。爬虫工程师与网站就像是在斗智斗勇,一方设置门槛,一方来攻破。代理IP之前简单介绍过几款反爬虫策略,但是也只是局限在理论上,今天带来案例来跟大家进行分享。


  随机化网页源码


  用display:none来随机化网页源码,有网站还会随机类和id的名字,然后再加点随机的tr和td,这样的话就增大了我们解析的难度。


代理IP反爬虫案例操作分享



  解决办法:


  可以看到每个IP都是包含在一个class为“ip”的td里的,所以我们可以先定位到这个td,然后进行下一步解析。虽然这个td里面包含了很多的span标签和p标签,而且也每个标签的位置也没有什么规律,不过还是有办法解析的。方法就是把这个td里的所有文字提取出来,然后把那些前后重复的部分去除掉,最后拼接到一起就可以了,代码如下:


  1 et = etree.HTML(html) # html:网页源码

  2 for n in range(1, 21):

  3 lst = et.xpath('//table/tbody/tr[{}]/td[1]//text()'.format(n))

  4 proxy = ""

  5 for i in range(len(lst) - 1):

  6 if lst[i] != lst[i + 1]:

  7 proxy += lst[i]

  8 proxy += lst[-1]

  9 print(proxy)


  最后就能得到我们想要的数据了。


  最好的学习方法就是实践,这是再多的理论知识都比不过的。大家不妨在遇到反爬虫的时候可以进行操作。


相关文章内容简介