zoukankan      html  css  js  c++  java
  • 极简代理IP爬取代码——Python爬取免费代理IP

    这两日又捡起了许久不碰的爬虫知识,原因是亲友在朋友圈拉人投票,点进去一看发现不用登陆或注册,觉得并不复杂,就一时技痒搞一搞,看看自己的知识都忘到啥样了。

    分析一看,其实就是个post请求,需要的信息都在网页中,唯一的问题就是网站做了IP限制,一个IP只能投一票。

    在GitHub上看到了star最高的代理IP池项目,但是由于大佬爬取的代理没有区分http和https,所以使用起来可用率就进一步降低了。

    大概看了一下大家经常爬取代理ip的网址,有一个是专门列出的HTTP类型的代理,稍微分析了一下页面,靠着自己快忘完了的知识,写了一个极简的爬取方案。代码如下:

    import requests
    from bs4 import BeautifulSoup
    
    def proxy_list():
        url = 'https://www.xicidaili.com/wt'
        headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}
        r = requests.get(url = url,headers = headers)
        s = BeautifulSoup(r.text,'lxml')
        tr_list = s.select('tr[class="odd"]')
        proxy_list = []
        for tr in tr_list:
            ip = tr.select('td')[1].text
            potal = tr.select('td')[2].text
            proxy_list.append('http://'+ip+':'+potal)
        return proxy_list
    

    该网站只做了ua限制,不加ua是会503的,加上ua即可。当然爬取下来的也不是都可以使用,需要做进一步验证才行。

    分页功能就不用多说了,较为简单,可以自行DIY。不得不说,requests+BeautifulSoup真好用,入门必备。

  • 相关阅读:
    数制
    转移指令检测题9
    转移指令笔记(1)
    汇编笔记
    汇编语言学习笔记
    C++中的虚函数
    windows程序设计(四)
    windows程序设计(三)
    windows程序设计(二)
    通过Url网络编程实现下载
  • 原文地址:https://www.cnblogs.com/mathbox/p/11089424.html
Copyright © 2011-2022 走看看