Python利用requests抓取页面源代码(基础)
Python利用requests抓取頁面源代碼(基礎)
Requests模塊是一個用于網絡訪問的模塊.
由于使用到的requests庫為第三方庫,需要事先對其進行安裝
1.1安裝requests
(1)利用cmd安裝,首先確保Python已經下載入電腦內,然后啟動cmd控制臺,輸入pip install requests,等待下載完成即可
(2)利用pycharm安裝,在pycharm的Terminal中輸入 pip install requests 命令進行request的安裝
回車等待安裝完畢即可
1.2網頁請求方式
了解一下網頁請求方式
一般來說,我們我們所使用的HTTP協議或者HTTPS協議,使用的請求方式最常見的有GET方式和POST方式
- GET方式:是最常見的HTTP方法之一,用于從指定資源請求數據,不需要在瀏覽器中輸入鏈接之外的東西,只是想要獲取一些資源,例如網頁源代碼。
- POST方式:用于將數據發送到服務器來創建或者更新資源,在訪問某個網頁之前需要用戶輸入鏈接之外的東西,需要發送給服務器,這樣服務器才能根據你發送的信息來返回響應。
2.使用
2.1爬取搜索關鍵字頁面數據
以搜狗搜索周杰倫為例
在搜狗搜索引擎中鍵入“周杰倫”后,得到的網址如下
https://www.sogou.com/web?query=鄧紫棋&_asf=www.sogou.com&_ast=&w=01015002&p=40040108&ie=utf8&from=index-nologin&s_from=index&oq=&ri=0&sourceid=sugg&suguuid=&sut=0&sst0=1634387928175&lkt=0%2C0%2C0&sugsuv=1634387082744536&sugtime=1634387928175
我們只保留“https://www.sogou.com/web?query=鄧紫棋”的地址(這個地址同樣可以完成請求命令)
import requests #首先導入requestsurl = "https://www.sogou.com/web?query=鄧紫棋" resp = requests.get(url) #由抓包工具可知使用get方法請求 print(resp) resp.close()運行結果為
從結果可知,我們的請求命令成功,并且得到了服務器回應
隨后我們將響應內容輸出
可以選擇不同的輸出內容,在這里我們選擇text來查看源代碼
2.2攔截處理
隨后檢查源代碼發現我們的請求遭到了攔截,原因可能是是服務器認為我們的這次請求是通過自動化程序發出的而不是正常瀏覽器發出的
解決這個問題我們可以進行一個小小的偽裝,用瀏覽器打開我們請求的頁面的抓包工具的Network后刷新頁面,選擇其中的一個目標中找到User-Agent
再次運行抓取,我們便得到了該頁面的源代碼
2.3改進(實現用戶自主查詢+將源代碼寫入文件)
#實現用戶輸入想要搜索的人物或者關鍵字,并進行抓取 import requestsquary = input("輸入一個你喜歡的明星") url = f"https://www.sogou.com/web?query={quary}" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36 Edg/94.0.992.47" }resp = requests.get(url,headers = headers) with open("result.txt", mode="w",encoding="UTF-8") as f: #將源代碼寫入文件,將編碼格式改為UTF-8f.write(resp.text) f.close() resp.close() #記得關閉這樣我們就完成了利用requests庫來抓取網頁源代碼(有了源代碼,就可以獲得更多的我們想要的數據了,這也是數據抓取的第一步)
總結
以上是生活随笔為你收集整理的Python利用requests抓取页面源代码(基础)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lwip的tcp断线重连例程_STM32
- 下一篇: CsvHelper文档-1前言