您好,登錄后才能下訂單哦!
這篇文章主要講解了“如何用Python爬取百度搜索結果并保存”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何用Python爬取百度搜索結果并保存”吧!
一、前言
眾所周知,百度上直接搜索關鍵字會出來一大堆東西,時常還會伴隨有廣告出現,不小心就點進去了,還得花時間退出來,有些費勁。
最近群里有個小伙伴提出一個需求,需要獲取百度上關于糧食的相關講話文章標題和鏈接。正好小編最近在學習爬蟲,就想著拿這個需求來練練手。我們都知道,對Python來說,有大量可用的庫,實現起來并不難,動手吧。
二、項目目標
爬取百度上關鍵字為“糧食”的搜索結果,并保存,提交給客戶,用于進一步分析我國糧食政策。
三、項目準備
軟件:PyCharm
需要的庫:json, requests,etree
四、項目分析
1)如何進行關鍵詞搜索?
利用response庫,直接Get網址獲得搜索結果。網址如下:
https://www.baidu.com/s?wd=糧食
2)如何獲取標題和鏈接?
利用etree對原代碼進行規范梳理后,通過Xpath定位到文章標題和href,獲取標題和文章鏈接。
3)如何保存搜索結果?
新建txt文件,對搜索結果循環寫入,保存即可。
五、項目實現
1、第一步導入需要的庫
import json import requests from 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('//h4') 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!
感謝各位的閱讀,以上就是“如何用Python爬取百度搜索結果并保存”的內容了,經過本文的學習后,相信大家對如何用Python爬取百度搜索結果并保存這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。