極簡代理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真好用,入門必備。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM