国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python爬蟲-爬取百度搜索結(jié)果頁的網(wǎng)頁標(biāo)題及其真實(shí)網(wǎng)址

這篇具有很好參考價(jià)值的文章主要介紹了Python爬蟲-爬取百度搜索結(jié)果頁的網(wǎng)頁標(biāo)題及其真實(shí)網(wǎng)址。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

共兩個(gè)依賴的需提前安裝的第三方庫:requests和bs4庫

cmd命令行輸入安裝requests庫:pip3 install -i https://pypi.douban.com/simple requests

安裝bs4庫:pip3 install -i https://pypi.douban.com/simple beautifulsoup4

?文章來源地址http://www.zghlxwxcb.cn/news/detail-710434.html

本微項(xiàng)目源文件下載地址:

https://wwuw.lanzouj.com/i1Au51a0312d

解壓文件后,需按照解壓包內(nèi)教程裝載Cookie即可使用。 本py腳本文件較符合有需求者使用,更適合python爬蟲初學(xué)者學(xué)習(xí)使用,代碼注釋較多,思路易理解。

?

本py腳本文件使用教程:

首先解壓壓縮包,打開包內(nèi)的 “運(yùn)行py文件前請閱讀!.txt” 文件,按其步驟裝載Cookie后方可使用腳本:

運(yùn)行該程序前:請打開瀏覽器前往"https://www.baidu.com"手動(dòng)登錄自己的百度賬戶,按F12打開開發(fā)者模式,選擇最上面一排Network/網(wǎng)絡(luò)選項(xiàng)卡。

Python爬蟲-爬取百度搜索結(jié)果頁的網(wǎng)頁標(biāo)題及其真實(shí)網(wǎng)址

?

接著按F5刷新本網(wǎng)頁,捕獲到的請求里一直往上翻到最頂端,選擇第一次請求(即名稱為www.baidu.com的請求)。

Python爬蟲-爬取百度搜索結(jié)果頁的網(wǎng)頁標(biāo)題及其真實(shí)網(wǎng)址

?

再選擇右側(cè)標(biāo)頭選項(xiàng)卡,往下滑到請求標(biāo)頭處,將Cookie字段的值全部復(fù)制下來(有很長一段的)替換掉下行的****** 替換后可直接運(yùn)行該文件。

Python爬蟲-爬取百度搜索結(jié)果頁的網(wǎng)頁標(biāo)題及其真實(shí)網(wǎng)址

Python爬蟲-爬取百度搜索結(jié)果頁的網(wǎng)頁標(biāo)題及其真實(shí)網(wǎng)址

Python爬蟲-爬取百度搜索結(jié)果頁的網(wǎng)頁標(biāo)題及其真實(shí)網(wǎng)址

?

按上述步驟裝載完Cookie后記得保存py腳本文件,就可以直接F5運(yùn)行該腳本了。下圖這里我用的是cmd控制臺環(huán)境來跑腳本。

Python爬蟲-爬取百度搜索結(jié)果頁的網(wǎng)頁標(biāo)題及其真實(shí)網(wǎng)址

Python爬蟲-爬取百度搜索結(jié)果頁的網(wǎng)頁標(biāo)題及其真實(shí)網(wǎng)址

?

找到保存結(jié)果的BDlinks.csv文件后,可用WPS、微軟Excel等軟件直接打開。

Python爬蟲-爬取百度搜索結(jié)果頁的網(wǎng)頁標(biāo)題及其真實(shí)網(wǎng)址

?

如若該py腳本首次運(yùn)行就失敗,運(yùn)行后無數(shù)據(jù)打印出來,一般是未成功裝載Cookie的問題,請按開頭的步驟重新裝載Cookie。

如若該py腳本多次運(yùn)行后突然無數(shù)據(jù)打印出來,一般是 “高頻訪問百度服務(wù)器/被識別爬蟲” 導(dǎo)致無數(shù)據(jù)返回,通常解決方法為換新Cookie:瀏覽器F5刷新后繼續(xù)按按開頭的步驟重新裝載Cookie。

最后可考慮是爬蟲代碼失效等其他問題,發(fā)文近日該爬蟲仍有效。

?

本微項(xiàng)目源碼:

 1 import requests
 2 from bs4 import BeautifulSoup
 3 import re
 4 import time
 5 from random import choice
 6 
 7 # 創(chuàng)建headers字段
 8 def createUA():
 9     # 運(yùn)行該程序前:請打開瀏覽器前往"https://www.baidu.com"手動(dòng)登錄自己的百度賬戶,按F12打開開發(fā)者模式,選擇最上面一排Network/網(wǎng)絡(luò)選項(xiàng)卡
10     # 接著按F5刷新本網(wǎng)頁,捕獲到的請求里一直往上翻到最頂端,選擇第一次請求(即名稱為www.baidu.com的請求)。
11     # 再選擇右側(cè)標(biāo)頭選項(xiàng)卡,往下滑到請求標(biāo)頭處,將Cookie字段的值全部復(fù)制下來(有很長一段的)替換掉下行的****** 替換后可直接運(yùn)行該文件
12     ua = {'Cookie': '******', \
13     'Host': 'www.baidu.com', \
14     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.54'}
15     return ua
16     # 程序運(yùn)行無數(shù)據(jù)返回爬不了的時(shí)候,瀏覽器直接刷新繼續(xù)按上述方法換字典里的Cookie值就完事了
17 
18 # 將百度搜索鏈接給予的加密URL轉(zhuǎn)化為真實(shí)的URL
19 def convertRealUrl(url, s2):
20     try:
21         headers = createUA()
22         realR = s2.get(url = url, headers = headers, allow_redirects = False)
23         # 當(dāng)請求加密鏈接,初兩次響應(yīng)的Http報(bào)文往往告知瀏覽器需要重定向,最初兩次的響應(yīng)報(bào)文里才有Location屬性來告知瀏覽器需要重定向到的真實(shí)網(wǎng)站鏈接。
24         # 此時(shí)我們不允許會(huì)話自動(dòng)根據(jù)給出的Location重定向跳轉(zhuǎn),因?yàn)樵试S重定向后會(huì)自動(dòng)跳到最新的真實(shí)的URL站點(diǎn),這時(shí)就只返回最新站點(diǎn)的響應(yīng)HTTP報(bào)文(已完成重定向后),此時(shí)響應(yīng)標(biāo)頭里不再有指示重定向url的Location字段。此方法就會(huì)失效!
25         return realR.headers['Location']
26     except:
27         # print(realR.status_code, end = "")
28         print("頭部字段沒有Location屬性或者加密的url有異常")
29         return url# 如果找不到Location頭部字段無法返回真實(shí)鏈接,那么就返回原來的加密鏈接
30 
31 # 獲取搜索頁
32 def getSearchPage(keyword, pn, s1):
33     headers = createUA()
34     url = 'http://www.baidu.com/s'
35     payload = {'wd': keyword, 'pn': pn}
36     try:
37         r = s1.get(url, headers = headers, params = payload, timeout = 30)
38         print('狀態(tài)碼是:', r.status_code)
39         r.raise_for_status()
40         r.encoding = 'utf-8'
41         return r.text
42     except:
43         return "狀態(tài)碼異常"
44 
45 # 升級!爬取一頁的標(biāo)題和真實(shí)鏈接
46 def upgradeCrawler(html, s2):
47     soup = BeautifulSoup(html, 'lxml')
48     titles = []
49     links = []
50     for h3 in soup.find_all('h3', {'class': re.compile('c-title t')}):
51         # a.text為獲取該路徑下所有子孫字符串吧??赡軇偤胊元素和em元素間沒有換行符,所以抓取的字符串里沒有\(zhòng)n換行符
52         g_title = h3.a.text.replace('\n', '').replace(',', ' ').strip()# 去掉換行和空格,部分標(biāo)題中還有逗號會(huì)影響CSV格式存儲(chǔ),也要去除。
53         g_url = h3.a.attrs['href']
54         g_url = convertRealUrl(g_url, s2)
55         print("{}\t{}\t".format(g_title, g_url))
56         titles.append(g_title)
57         links.append(g_url)
58     return titles, links
59 
60 # 將二維列表數(shù)據(jù)寫入CSV文件
61 def writeCSV(titles, links):
62     infos = list(zip(titles, links))
63     fo = open('./BDlinks.csv', 'at', encoding='utf-8')# 需要鎖定用utf-8編碼打開,不然該文件很可能會(huì)以gbk中文編碼存儲(chǔ),這導(dǎo)致部分url中的西文字符存儲(chǔ)到本文件時(shí)無法通過gbk模式編碼存儲(chǔ)。
64     for row in infos:
65         fo.write(",".join(row) + "\n")
66     fo.close()
67     print("CSV文件已保存!")
68 
69 # 頂層設(shè)計(jì)
70 def main():
71     while True:  # 循環(huán)
72         keyword = input("請輸入搜索關(guān)鍵詞:")
73         num = int(input("請輸入爬取頁數(shù):"))
74         titles = []
75         links = []
76         # s1會(huì)話用于獲取搜索結(jié)果頁
77         s1 = requests.session()
78         # s2會(huì)話用于轉(zhuǎn)真實(shí)URL
79         s2 = requests.session()
80         # 第1頁為0,第2頁為10,第3頁為20,依次類推
81         num = num * 10
82         for pn in range(0, num, 10):
83             html = getSearchPage(keyword, pn, s1)
84             print('標(biāo)題\tURL\t')
85             ti, li = upgradeCrawler(html, s2)
86             titles += ti
87             links += li
88             print("{0:->41}{1:-<36.0f}".format("當(dāng)前頁碼為:", pn / 10 + 1))
89             time.sleep(5)
90         print('爬取完成!')
91         writeCSV(titles, links)
92 
93 if __name__ == '__main__':
94     main()

有一小部分注釋是作者開發(fā)學(xué)習(xí)過程中寫的個(gè)人筆記,看不懂的還請?zhí)^。

以上皆為原創(chuàng)內(nèi)容,倘若本文對你有幫助的話還請點(diǎn)下下方的推薦和贊,你的鼓勵(lì)就是作者創(chuàng)作的最大動(dòng)力呀!

?

到了這里,關(guān)于Python爬蟲-爬取百度搜索結(jié)果頁的網(wǎng)頁標(biāo)題及其真實(shí)網(wǎng)址的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • selenium爬蟲——以爬取澎湃新聞某搜索結(jié)果為例

    selenium爬蟲——以爬取澎湃新聞某搜索結(jié)果為例

    本程序致力于實(shí)現(xiàn)以下目標(biāo): (1)爬取澎湃新聞關(guān)于“反腐”的全部文章內(nèi)容; (2)按標(biāo)題、鏈接將其整理到excel中; (3)將標(biāo)題和文章整合到一個(gè)word文檔中。 許久沒有正經(jīng)寫過了,有些生疏,代碼耦合度蠻高的,所幸目標(biāo)達(dá)成了。 webdriver的版本要與瀏覽器一致 如果用

    2024年02月06日
    瀏覽(45)
  • (已解決)關(guān)鍵詞爬取百度搜索結(jié)果,返回百度安全驗(yàn)證,網(wǎng)絡(luò)不給力,請稍后重試,無法請求到正確數(shù)據(jù)的問題

    (已解決)關(guān)鍵詞爬取百度搜索結(jié)果,返回百度安全驗(yàn)證,網(wǎng)絡(luò)不給力,請稍后重試,無法請求到正確數(shù)據(jù)的問題

    已解決,使用進(jìn)行百度搜索,然后爬取搜索結(jié)果,請求數(shù)據(jù)后,返回的是百度安全驗(yàn)證,網(wǎng)絡(luò)不給力,請稍后重試。無法請求到正確數(shù)據(jù)。且嘗試在header中增加Accept參數(shù)還是不行。 ? ? ?在學(xué)習(xí)過程中,寫了一小段練習(xí)用的爬取程序,獲取百度搜索后的結(jié)果,代

    2024年02月08日
    瀏覽(31)
  • (已解決)關(guān)鍵詞爬取百度搜索結(jié)果,返回百度安全驗(yàn)證,網(wǎng)絡(luò)不給力,請稍后重試,無法請求到正確數(shù)據(jù)的問題(2023最新)

    (已解決)關(guān)鍵詞爬取百度搜索結(jié)果,返回百度安全驗(yàn)證,網(wǎng)絡(luò)不給力,請稍后重試,無法請求到正確數(shù)據(jù)的問題(2023最新)

    已解決,使用進(jìn)行百度搜索,然后爬取搜索結(jié)果,請求數(shù)據(jù)后,返回的是百度安全驗(yàn)證,網(wǎng)絡(luò)不給力,請稍后重試。無法請求到正確數(shù)據(jù)。且嘗試在header中增加Accept參數(shù)還是不行。 ? ? ?在學(xué)習(xí)過程中,寫了一小段練習(xí)用的爬取程序,獲取百度搜索后的結(jié)果,代

    2024年02月17日
    瀏覽(27)
  • 【經(jīng)驗(yàn)分享】在百度搜索引擎中的結(jié)果中,過濾指定的網(wǎng)站

    【經(jīng)驗(yàn)分享】在百度搜索引擎中的結(jié)果中,過濾指定的網(wǎng)站

    系統(tǒng)版本:Windows 10 描述:在搜索引擎中想在結(jié)果中過濾一些指定網(wǎng)站,快速找到有價(jià)值的內(nèi)容。 視頻教程: 文字教程: 1.進(jìn)入百度搜索引擎,bing搜索引擎貌似不可以。 www.baidu.com 2.搜索內(nèi)容如:銳捷無線AC基礎(chǔ)命令 -csdn,“-”這個(gè)符號是減號,0旁邊那個(gè),或者小鍵盤的減

    2024年02月03日
    瀏覽(26)
  • selenium-java web自動(dòng)化測試工具抓取百度搜索結(jié)果實(shí)例

    selenium-java web自動(dòng)化測試工具抓取百度搜索結(jié)果實(shí)例

    ??? 交流討論: 歡迎加入我們一起學(xué)習(xí)! ?? 資源分享 : 耗時(shí)200+小時(shí)精選的「軟件測試」資料包 ??? 教程推薦: 火遍全網(wǎng)的《軟件測試》教程?? ?? 歡迎點(diǎn)贊 ?? 收藏 ?留言 ?? 如有錯(cuò)誤敬請指正! selenium-java web自動(dòng)化測試工具抓取百度搜索結(jié)果實(shí)例 這種方式抓百度

    2024年03月14日
    瀏覽(25)
  • Python獲取Yandex搜索引擎搜索結(jié)果詳解

    Python獲取Yandex搜索引擎搜索結(jié)果詳解

    ?? 個(gè)人網(wǎng)站:ipengtao.com 在網(wǎng)絡(luò)搜索領(lǐng)域,Yandex是一個(gè)備受歡迎的搜索引擎,特別在俄羅斯和周邊地區(qū)使用廣泛。本文將詳細(xì)介紹如何使用Python獲取Yandex搜索引擎的搜索結(jié)果,以便在項(xiàng)目中進(jìn)行搜索結(jié)果分析和數(shù)據(jù)挖掘。 使用 requests 庫向Yandex搜索引擎發(fā)送HTTP請求。 確保已經(jīng)

    2024年01月23日
    瀏覽(19)
  • 搜索引擎的個(gè)性化搜索:為何搜索結(jié)果因人而異

    搜索引擎的個(gè)性化搜索:為何搜索結(jié)果因人而異

    ?? 個(gè)人網(wǎng)站:【海擁】【游戲大全】【神級源碼資源網(wǎng)】 ?? 前端學(xué)習(xí)課程:??【28個(gè)案例趣學(xué)前端】【400個(gè)JS面試題】 ?? 尋找學(xué)習(xí)交流、摸魚劃水的小伙伴,請點(diǎn)擊【摸魚學(xué)習(xí)交流群】 搜索引擎已成為我們獲取信息的重要工具,而當(dāng)我們輸入相同的進(jìn)行搜索時(shí),為

    2024年02月11日
    瀏覽(21)
  • es的搜索結(jié)果處理

    es的搜索結(jié)果處理

    elasticsearch默認(rèn)是根據(jù)相關(guān)度算分(_score)來排序,但是也支持自定義方式對搜索結(jié)果排序。可以排序字段類型有:keyword類型、數(shù)值類型、地理坐標(biāo)類型、日期類型等。 1.1.普通字段排序 keyword、數(shù)值、日期類型排序的語法基本一致。 語法 : 排序條件是一個(gè)數(shù)組,也就是可以

    2024年02月01日
    瀏覽(30)
  • Elasticsearch(八)搜索---搜索輔助功能(上)--指定搜索返回字段,結(jié)果計(jì)數(shù)和分頁

    Elasticsearch(八)搜索---搜索輔助功能(上)--指定搜索返回字段,結(jié)果計(jì)數(shù)和分頁

    前面我們已經(jīng)將ES的基礎(chǔ)操作(索引,映射,文檔)學(xué)習(xí)過了,從這一章開始,我們便開始學(xué)習(xí)ES的最大的功能—搜索 ES為用戶提供了豐富的搜索功能:既有基本的搜索功能,又有搜索建議功能;既有常用的普通類型的匹配功能,又有基于地理位置的搜索功能;既提供了分頁搜

    2024年02月05日
    瀏覽(20)
  • 織夢dedecms在搜索結(jié)果頁按欄目分類顯示搜索數(shù)據(jù)

    搜索結(jié)果示范 1、搜索框代碼里使用name=\\\"q\\\"作為搜索框?qū)傩?,例??2、打開 /include/taglib/arclist.lib.php 找到,大概在188行 $innertext = trim($innertext); 在它下面加入 preg_match(\\\"/~([A-Za-z0-9_]+)~/s\\\", $keyword, $conditions); if(isset($_REQUEST[\\\'q\\\']) $keyword = \\\'~q~\\\') { preg_match(\\\"/~([A-Za-z0-9_]+)~/s\\\", $keyword, $cond

    2024年02月03日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包