手把手教你用用Python爬取上道網(wǎng)的贊助公司名稱
點擊上方“IT共享之家”,進行關注
回復“資料”可獲贈Python學習福利
一、前言
上道網(wǎng)是一個手游發(fā)行推薦與投融資交易平臺。平臺聚集手游CP、手游發(fā)行、手游渠道、手游外包,投資商以及IP授權商,IP合作、一站式服務。并為之提供合作交易機會。
今天教如何去爬取上道網(wǎng)的贊助公司名稱,方便有關人士投資。

二、實現(xiàn)目標
獲取對應的公司名稱,保存文檔。
三、項目準備
軟件:PyCharm
需要的庫:requests,fake_useragent,time
網(wǎng)址:http://www.daogame.cn/qudao-p-2.html?s=/qudao-p-{}.html
四、項目分析 ?
如何網(wǎng)頁訪問?
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循環(huán)遍歷這網(wǎng)址,實現(xiàn)多個網(wǎng)址請求。
五、項目實現(xiàn)
1. 定義一個class類繼承object,定義init方法繼承self,主函數(shù)main繼承self。導入需要的庫、請求地址。
import requestsfrom lxml import etreefrom fake_useragent import UserAgentimport timeclass Shangdao(object):def __init__(self):self.url = "http://www.daogame.cn/qudao-p-2.html?s=/qudao-p-{}.html" #網(wǎng)站def main(self):passif __name__ == '__main__':Siper = Shangdao()Siper.main()
2. 隨機產(chǎn)生UserAgent,防止反爬。
for i in range(1, 50):self.headers = {'User-Agent': ua.random,}
3. 發(fā)送請求 ?獲取響應, 頁面回調(diào),方便下次請求。
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. 調(diào)用方法,實現(xiàn)功能。
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)
項目優(yōu)化:
1. 設置時間延時。
time.sleep(1.4)六、效果展示
點擊綠色小三角運行輸入起始頁,終止頁( ?從0頁開始 )。

渠道公司名,結果顯示控制臺。

保存文檔。

七、總結
1. 不建議抓取太多數(shù)據(jù),容易對服務器造成負載,淺嘗輒止即可。
2. 希望通過這個項目,能夠幫助了解xpath解析頁面的基本流程,字符串是如何拼接,format函數(shù)如何運用。
3. 本文基于Python網(wǎng)絡爬蟲,利用爬蟲庫,實現(xiàn)爬取上道網(wǎng),但是到自己動手實現(xiàn)的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻。
4. 需要本文完整代碼的小伙伴,可以后臺回復"上道"二字進行獲取。
看完本文有收獲?請轉(zhuǎn)發(fā)分享給更多的人
IT共享之家
入群請在微信后臺回復【入群】
-------------------?End?-------------------
往期精彩文章推薦:
