实战项目一:爬取西刺代理(获取代理IP)
爬蟲(chóng)的學(xué)習(xí)就是與反扒措施、反扒系統(tǒng)做斗爭(zhēng)的一個(gè)過(guò)程,而使用代理IP是我們重要的防反扒的重要措施,代理IP的來(lái)源有兩種一是你花錢(qián)去購(gòu)買商家會(huì)給你提供一個(gè)接口你直接調(diào)用就可以了,二是自己在網(wǎng)上爬取高效IP。在這篇博客中我重點(diǎn)給大家講一下如何從網(wǎng)上獲取高效IP,我們下面的IP來(lái)源于西刺代理,這是我很久之前寫(xiě)的一篇博客,今天來(lái)進(jìn)行“翻新”一番希望可以幫助到大家。
安裝必要的第三方庫(kù)
BeautifulSoup和requests,BeautifulSoup負(fù)責(zé)解析HTML網(wǎng)頁(yè)源碼,requests負(fù)責(zé)發(fā)送請(qǐng)求來(lái)獲取網(wǎng)頁(yè)源碼,BeautifulSoup和requests均屬于Python爬蟲(chóng)的基礎(chǔ)庫(kù),可以通過(guò)pip安裝。打開(kāi)命令行輸入命令pip install BeautifulSoup4和pip install requests進(jìn)行安裝:
過(guò)后在輸入命令pip list在pip安裝包列表中檢查BeautifulSoup和requests庫(kù)是否安裝成功
分析網(wǎng)頁(yè)結(jié)構(gòu)
待續(xù)。。。。
完整代碼
#IP地址取自國(guó)內(nèi)髙匿代理IP網(wǎng)站:http://www.xicidaili.com/nn/ from bs4 import BeautifulSoup import requests,randomdef get_ipInfors(url, headers):'''爬取IP數(shù)據(jù),單個(gè)IP信息以json格式存儲(chǔ),所有json格式的IP數(shù)據(jù)信息放入列表中return:ip_infor'''web_data = requests.get(url, headers=headers)soup = BeautifulSoup(web_data.text, 'lxml')nodes = soup.find_all('tr')for node in nodes[1:]:ip_ = node.find_all('td')ip_address = ip_[1].textip_port = ip_[2].textip_type = ip_[5].textip_time = ip_[8].textip_infors = {"ip_address" : ip_address,"ip_port" : ip_port,"ip_type" : ip_type,"ip_time" : ip_time}return ip_inforsdef write_ipInfors(ip_infors):'''將IP數(shù)據(jù)寫(xiě)入文件中'''for ip_infor in ip_infors:f=open('IP.txt','a+',encoding='utf-8')f.write(ip_infors)f.write('\n')f.close()if __name__ == '__main__':for i in range(1,10):url = 'https://www.xicidaili.com/nn/{}'.format(i)headers = {'Host': 'www.xicidaili.com','Referer': 'https://www.xicidaili.com/','User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'}ip_infors = get_ipInfors(url, headers=headers)proxies = write_ipInfors(ip_infors) 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的实战项目一:爬取西刺代理(获取代理IP)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 待删除
- 下一篇: 实战项目四:爬取911网站