本文的文字及圖片來源于網路,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯系我們以作處理,
作者: IT共享者
來源:IT共享之家
Python爬蟲、資料分析、網站開發等案例教程視頻免費在線觀看
https://space.bilibili.com/523606542
一、前言
上道網是一個手游發行推薦與投融資交易平臺,平臺聚集手游CP、手游發行、手游渠道、手游外包,投資商以及IP授權商,IP合作、一站式服務,并為之提供合作交易機會,
今天教如何去爬取上道網的贊助公司名稱,方便有關人士投資,
二、實作目標
獲取對應的公司名稱,保存檔案,
三、專案準備
軟體:PyCharm
需要的庫:requests,fake_useragent,time
網址:http://www.daogame.cn/qudao-p-2.html?s=/qudao-p-{}.html
四、專案分析
如何網頁訪問?
http://www.daogame.cn/qudao-p-2.html?s=/qudao-p-1.html http://www.daogame.cn/qudao-p-2.html?s=/qudao-p-2.html http://www.daogame.cn/qudao-p-2.html?s=/qudao-p-3.html http://www.daogame.cn/qudao-p-2.html?s=/qudao-p-4.html
點擊下一頁時,每增加一頁p-{}.html自增加1,用{}代替變換的變數,再用for回圈遍歷這網址,實作多個網址請求,
五、專案實作
1. 定義一個class類繼承object,定義init方法繼承self,主函式main繼承self,匯入需要的庫、請求地址,
import requests from lxml import etree from fake_useragent import UserAgent import time class Shangdao(object): def __init__(self): self.url = "http://www.daogame.cn/qudao-p-2.html?s=/qudao-p-{}.html" #網站 def main(self): pass if __name__ == '__main__': Siper = Shangdao() Siper.main()
2. 隨機產生UserAgent,防止反爬,
for i in range(1, 50): self.headers = { 'User-Agent': ua.random, }
3. 發送請求 獲取回應, 頁面回呼,方便下次請求,
def get_page(self, url): res = requests.get(url=url, headers=self.headers) html = res.content.decode("utf-8") return html
4. 獲取公司名稱,for遍歷,
def page_page(self, html): parse_html = etree.HTML(html) one = parse_html.xpath('//h2/a/text()') for i in one: print(i)
5. 寫入檔案,
f = open('公司.doc', 'a', encoding='utf-8') # 以'w'方式打開檔案 f.write(str(i))
6. 呼叫方法,實作功能,
def main(self): stat = int(input("輸 入 開 始 (2開始):")) end = int(input("輸 入 結 束:")) for page in range(stat, end + 1): url = self.url.format(page) print(url) html = self.get_page(url) self.page_page(html) print("==================第%s頁爬取成功!!!!=====================" % page)
專案優化:
設定時間延時,
time.sleep(1.4)
六、效果展示
點擊綠色小三角運行輸入起始頁,終止頁( 從0頁開始 ),
渠道公司名,結果顯示控制臺,
保存檔案,
七、總結
1. 不建議抓取太多資料,容易對服務器造成負載,淺嘗輒止即可,
2. 希望通過這個專案,能夠幫助了解xpath決議頁面的基本流程,字串是如何拼接,format函式如何運用,
3. 本文基于Python網路爬蟲,利用爬蟲庫,實作爬取上道網,但是到自己動手實作的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/250463.html
標籤:Python

