爬虫-实现一个简易的网页采集器
生活随笔
收集整理的這篇文章主要介紹了
爬虫-实现一个简易的网页采集器
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1 requests模塊的基本使用
""" 爬蟲 """ """ 什么是爬蟲?就是通過編寫程序模擬瀏覽器上網(wǎng),然后讓其去互聯(lián)網(wǎng)上爬取數(shù)據(jù)的過程 爬蟲的分類:通用爬蟲:抓取互聯(lián)網(wǎng)中的一整張頁面數(shù)據(jù)聚焦爬蟲:抓取頁面中的局部數(shù)據(jù)增量式爬蟲:用來監(jiān)測網(wǎng)站數(shù)據(jù)更新的情況,以便爬取到網(wǎng)站最新更新出來的數(shù)據(jù) """ """ requests模塊:Python中封裝好的一個基于網(wǎng)絡(luò)請求的模塊。 作用:用來模擬瀏覽器發(fā)請求requests模塊的編碼流程:1.指定url2.發(fā)起請求3.獲取響應(yīng)數(shù)據(jù)4.持久化存儲 """import requests""" 第一版:中文亂碼 """ # 爬取百度首頁 baidu_url = 'https://www.baidu.com/' # 請求發(fā)送get:get返回值是一個響應(yīng)對象 response = requests.get(url=baidu_url) # 響應(yīng)對象返回的是以字符串形式存儲的響應(yīng)數(shù)據(jù) data = response.text print(data) # 將爬取到的數(shù)據(jù)存進(jìn)文件里 with open('baidu.html', encoding='utf-8', mode='w') as f:f.write(data)""" 第一版:解決中文亂碼 """# 爬取百度首頁 baidu_url = 'https://www.baidu.com/' # 請求發(fā)送get:get返回值是一個響應(yīng)對象 response = requests.get(url=baidu_url) # 修改響應(yīng)數(shù)據(jù)的編碼格式 response.encoding = 'utf-8' # 響應(yīng)對象返回的是字符串形式的響應(yīng)數(shù)據(jù) data2 = response.text print(data2)with open('baidu2.html', encoding='utf-8', mode='w') as f:f.write(data)2 實現(xiàn)一個簡單的網(wǎng)頁采集器
""" UA(User-Agent)檢測:門戶網(wǎng)站通過檢測請求載體的身份標(biāo)識判定改請求是否為爬蟲發(fā)起的請求,是的話會被拒絕訪問。 UA偽裝:將爬蟲發(fā)起的請求偽裝成瀏覽器的身份標(biāo)識 Microsoft Edge瀏覽器的User-Agent:(檢查-網(wǎng)絡(luò) 里面去查找這個,見下面圖片)Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36 Edg/100.0.1185.29 """import requests# 利用搜狗引擎搜索中國的url,"https://www.sogou.com/web?query=中國",#需要讓url攜帶的參數(shù)動態(tài)化,觀察結(jié)構(gòu) keyword_url = "https://www.sogou.com/web?" # 實現(xiàn)參數(shù)動態(tài)化 you_want_search = input("請輸入需要查找的關(guān)鍵字:") # 將輸入的參數(shù)存儲成一個字典,鍵為url的關(guān)鍵字 key_dict = {'query': you_want_search}# 解決UA檢測:偽裝成Microsoft Edge瀏覽器的身份標(biāo)識 head = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36 Edg/100.0.1185.29' }# params = 請求參數(shù); response = requests.get(url=keyword_url, params=key_dict, headers=head)# 修改響應(yīng)數(shù)據(jù)的編碼格式,防止亂碼 response.encoding = 'utf-8' # 返回的是字符串形式的響應(yīng)數(shù)據(jù) datas = response.textprint(datas) filename= you_want_search + '.html' with open(filename, encoding='utf-8', mode='a') as f:f.write(datas)3 瀏覽器的身份標(biāo)識獲取:User-Agent
(1)對網(wǎng)頁右鍵,選擇“檢查”
(2)選擇 “網(wǎng)絡(luò)”,如下圖步驟
總結(jié)
以上是生活随笔為你收集整理的爬虫-实现一个简易的网页采集器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 投屏工具
- 下一篇: C语言编译、链接和运行详解