手把手教你用Python爬取百度搜索結果並保存

點擊上方“Python爬蟲與數據挖掘”,進行關注

回覆“書籍”即可獲贈Python從入門到進階共10本電子書

朝辭白帝彩雲間,千里江陵一日還。

一、前言

大家好,我是崔豔飛。衆所周知,百度上直接搜索關鍵字會出來一大堆東西,時常還會伴隨有廣告出現,不小心就點進去了,還得花時間退出來,有些費勁。

最近羣裏有個小夥伴提出一個需求,需要獲取百度上關於糧食的相關講話文章標題和鏈接。正好小編最近在學習爬蟲,就想着拿這個需求來練練手。我們都知道,對Python來說,有大量可用的庫,實現起來並不難,動手吧。


二、項目目標

爬取百度上關鍵字爲“糧食”的搜索結果,並保存,提交給客戶,用於進一步分析我國糧食政策。


三、項目準備

軟件:PyCharm

需要的庫:json, requests,etree


四、項目分析

1)如何進行關鍵詞搜索?

利用response庫,直接Get網址獲得搜索結果。網址如下:

https://www.baidu.com/s?wd=糧食

2)如何獲取標題和鏈接?

利用etree對原代碼進行規範梳理後,通過Xpath定位到文章標題和href,獲取標題和文章鏈接。

3)如何保存搜索結果?

新建txt文件,對搜索結果循環寫入,保存即可。


五、項目實現

1、第一步導入需要的庫

import jsonimport requestsfrom lxml import etree

2、第二步用requests進行請求搜索

headers = {    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36"}response = requests.get('https://www.baidu.com/s?wd=糧食&lm=1', headers=headers)

3、第三步對獲取的源代碼進行整理分析,通過Xpath定位需要的資源

   r = response.text   html = etree.HTML(r, etree.HTMLParser())   r1 = html.xpath('//h3')   r2 = html.xpath('//*[@class="c-abstract"]')   r3 = html.xpath('//*[@class="t"]/a/@href')

4、第四步把有用資源循環讀取保存

for i in range(10):    r11 = r1[i].xpath('string(.)')    r22 = r2[i].xpath('string(.)')    r33 = r3[i]    with open('ok.txt', 'a', encoding='utf-8') as c:         c.write(json.dumps(r11,ensure_ascii=False) + '\n')         c.write(json.dumps(r22, ensure_ascii=False) + '\n')         c.write(json.dumps(r33, ensure_ascii=False) + '\n')    print(r11, end='\n')    print('------------------------')    print(r22, end='\n')    print(r33)

    

六、效果展示

1、程序運行結果,如下圖所示:

2、保存爲txt的文件最終結果如下圖所示:


七、總結

本文介紹瞭如何利用Python對百度搜索結果進行爬取、保存,是一個小爬蟲,這也是Python好玩的地方,有大量免費的庫可用,能幫你實現各種需求。工作量大,學會用Python!

最後需要本文項目代碼的小夥伴,請在公衆號後臺回覆“糧食”關鍵字進行獲取,如果在運行過程中有遇到任何問題,請隨時留言或者加小編好友,小編看到會幫助大家解決bug噢!

------------------- End -------------------

往期精彩文章推薦:

歡迎大家點贊,留言,轉發,轉載,感謝大家的相伴與支持

想加入Python學習羣請在後臺回覆【入羣

萬水千山總是情,點個【在看】行不行

/今日留言主題/

隨便說一兩句吧~~

本文分享自微信公衆號 - Python爬蟲與數據挖掘(crawler_python)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章