2021-08-30-CR-006 Python爬虫 使用requests和BeautifulSoup爬取网站上的代

代码 代码 1418 人阅读 | 0 人回复

<
那里爬与西推代办署理的下藏效劳器列表
先阐发页里的格局
205426ena2fz0zz4ezdk2e.jpg

205426vubb9bujjn6grjxo.jpg

205427pa2v5vxexgv5lxoa.jpg

那里能够看出去页里的第几页便是链接后背减数字战斜杠
然后测试下第一页也是能够的,2000页便是一个轮回便可调解url
需求的数据正在网页源代码的table内里,用BeautifulSoup便可挑选 出去
代码:
  1. import codecs
  2. import re
  3. import requests
  4. from bs4 import BeautifulSoup as bfs
  5. import   csv
  6. #T1
  7. f = codecs.open(&#39;daili.csv&#39;,&#39;a&#39;,&#39;gbk&#39;)
  8. w = csv.writer(f)
  9. w.writerow(["IP",&#39;和谈&#39;])
  10. #T2
  11. headers = {
  12. "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
  13. }
  14. for ii in range(1,2001):
  15.     r = requests.get("http://www.xiladaili.com/gaoni/"+str(ii)+&#39;/&#39;)
  16.     # print(r.text)
  17.     # print(r.text)
  18.     soup=bfs(r.text,&#39;html.parser&#39;)
  19.     trs=soup.select(&#39;tbody > tr&#39;)
  20.     # print(trs)
  21. #T3
  22.     for tr in trs:
  23.         tds=  tr.find_all(&#39;td&#39;)
  24.         ip=tds[0].get_text()
  25.         type=tds[1].get_text()
  26.         #http
  27.         http = &#39;&#39;.join(re.findall(r&#39;[A-Za-z]&#39;, type))
  28.         print(http)
  29.         if http==&#39;HTTPHTTPS&#39;:
  30.             http=&#39;HTTP&#39;
  31. #T4
  32.         proxies = {http: f&#39;{http}://&#39; + ip}
  33.         try:
  34.             r = requests.get(&#39;https://www.ip.cn/&#39;, headers=headers,
  35.                              proxies=proxies, timeout=3)
  36.             html = r.text
  37.         except:
  38.             print(&#39;fail-%s&#39; % ip)
  39.         else:
  40.             print(&#39;success-%s&#39; % ip)
  41.             soup = bfs(html, &#39;lxml&#39;)
  42.             div = soup.find(class_=&#39;well&#39;)
  43.             if div:
  44.                 print(div.text)
  45.             w.writerow([ip, http])
  46.             print(ip + &#39;写进胜利&#39;)
复造代码
剖析:
T1部分是设置保留到的文件
T2开端爬与,设置用户代办署理,爬与每个页里内里的tbody上面的tr列表,那是按照页里的格局挑选的
205427thj1sjs9cy6t9thi.jpg

T3开端逐一剖析那个tr,那里相称于剖析每页上里的那个表格
掏出前两个单位格的值
第两的格子暗示的是代办署理的规范,提与此中的英文,大概间接按照网页上的几个字停止判定去辨别规范
T4测试那个代办署理,假如胜利便把那个代办署理写进到文件里
步调便是如许了
那个测试偶然候一个ip会有成绩,第一次欠亨过,第两次又能经由过程,以是 其实不能包管一切的可用ip皆被保留了下去
那里能够先没有写进文件里,保留到 列内外,然后经由过程轮回多运转几遍,每次 判定能否存正在大概 间接最初转换为汇合,再写进到文件内里 。
假如寻求的是下量量ip,那末能够对获得的ip再从头测试几遍 ,来失落出不对的ip,如许留下去的便 皆是好用的ip了。
ip的畅达取可战当前时面的形态有闭,以是 没有包管当前用起去是一样的。

免责声明:假如进犯了您的权益,请联络站少,我们会实时删除侵权内乱容,感谢协作!
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请您发送邮箱:Cdnjson@163.com提供相关证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
回复 关闭延时

使用道具 举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则