目錄
一、找到頁面
?二、學會使用檢查元素
2.1 打開檢查元素界面
2.2 找到所有評論所在的位置
2.2.1 搜索評論
2.2.2 ?找到data表
三、基礎部分代碼實現(xiàn)????????
全部已經更完(下面兩個鏈接是中和下)
https://blog.csdn.net/m0_68325382/article/details/137234661?spm=1001.2014.3001.5502
爬蟲爬取微博評論--下--多頁爬取(超詳細教程,大學生不騙大學生)-CSDN博客?
一、找到頁面
首先你需要找到一個你想要爬取的頁面
(這里我是隨機找的一個微博帖子)
它的評論內容是這樣的
然后我們今天的內容就是從這個頁面的評論里面提取我們想要的
(其實學會了之后不只可以爬取評論的內容喔?。。?/span>
?二、學會使用檢查元素
2.1 打開檢查元素界面
在你打開的頁面->單機右鍵->檢查元素(或者是審查元素),然后我們就可以看到這個界面
這里你的上面一行表頭可能會是英文嘟沒關系(我會把英文界面該點的標在括號里)
我們主要用的是網絡(network)這部分?
點擊網絡(network)?
如果點擊小放大鏡后界面和我這個差不多那就大概率是對的?
如果你沒有這小放大鏡可以換個瀏覽器
(我目前用下來,蘋果自帶的Safari瀏覽器是不行的,我用的這個例子里是360瀏覽器,是OK嘟,大家可以參考一下)
2.2 找到所有評論所在的位置
2.2.1 搜索評論
這里我們在搜索的界面輸入我們這個帖子里面隨便一條評論的內容,點擊搜索?
如果你在這里黏貼了評論的內容但是,顯示搜索不到結果你可以試一試
不關閉檢查元素的界面->退出當前網頁或者你隨機點一個人的主頁->再回到評論界面->搜索評論內容就會出現(xiàn)了!
2.2.2 ?找到data表
下一步我們 點擊搜索出的結果
顯示的界面是這樣的
然后我們點擊這個預覽(preview)
再說一次喔,有可能大家的檢查元素打開的是全英文的,但是沒關系我會把英文該點的標在括號里
(后面的大部分操作都是在這個預覽界面的)?
點擊data旁邊的小三角,展開data
展現(xiàn)的結果是這樣的?
然后這個里面的0-19,就是0-19條評論的數據,包括一些評論內容,評論人的ID,評論被點贊的數量等等,我們一會要爬取的數據就是從這里來的
三、基礎部分代碼實現(xiàn)?
首先我們要知道想要爬取一個網站的數據我們首先需要訪問網站
我們的代碼需要通過網站的url來找到網站
下面我們先將爬取網站的基礎格式寫出來
#requets是一個爬蟲的第三方庫,需要單獨安裝
import requests
#url是一訪問網站的地址(這個不是很了解,但是我們代碼是需要通過url來找到你要爬取的網頁)
url = ''
#1.發(fā)送請求(定義一個response變量用來存儲從url所對應的網頁得到的信息)
response = requests.get(url=url)
#2.打印請求狀態(tài)(response有很多屬性,比如text等等,但是直接打印response是打印當前請求的狀態(tài)碼,200是成功,404是錯誤)
print(response)
從上面的幾行代碼我們就能實現(xiàn)對網站的訪問,但是,我們該怎么獲取一個網站的url呢?
找到我們有data列表的那個檢查元素界面->點擊標頭(headers)
在這里可以看到一個 “請求網址” (URL),這個就是我們的請求頭
將這個URL復制到我們代碼里面
#requets是一個爬蟲的第三方庫,需要單獨安裝
import requests
#url是一訪問網站的地址
url = 'https://weibo.com/ajax/statuses/buildComments?is_reload=1&id=5017675820436181&is_show_bulletin=2&is_mix=0&count=10&uid=2810373291&fetch_level=0&locale=zh-CN'
#1.發(fā)送請求
response = requests.get(url=url)
#2.打印請求狀態(tài)
print(response)
這里我用PyCharm運行一下代碼
可以看到輸出顯示 <Response [200]>,代表著我們訪問成功了
下一步我們可以試著把網頁的數據用 .text的方式拿出來?
#requets是一個爬蟲的第三方庫,需要單獨安裝
import requests
#url是一訪問網站的地址
url = 'https://weibo.com/ajax/statuses/buildComments?is_reload=1&id=5017675820436181&is_show_bulletin=2&is_mix=0&count=10&uid=2810373291&fetch_level=0&locale=zh-CN'
#1.發(fā)送請求
response = requests.get(url=url)
#2.打印網頁數據
print(response.text)
我們運行一下
?但是我們發(fā)現(xiàn)這個并不是像我們想的一樣,將網頁的文本用文字的方式呈現(xiàn),那么接下來我們要用到一個方法,讓我們能夠用文字的方式輸出網頁數據----->定義請求頭
import requests
# 請求頭
headers = {
# 用戶身份信息
'cookie' : '',
# 防盜鏈
'referer' : '',
# 瀏覽器基本信息
'user-agent' : ''
}
url = 'https://weibo.com/ajax/statuses/buildComments?is_reload=1&id=5017675820436181&is_show_bulletin=2&is_mix=0&count=10&uid=2810373291'
# 1.發(fā)送請求
response = requests.get(url=url,headers=headers)
#2.打印網頁數據
print(response.text)
為什么要定義請求頭,因為從網站的設置初衷,它是不想服務于我們的爬蟲程序的,網站正常只想服務于客戶的訪問服務,那么我們要將我們的爬蟲程序偽裝成為正常的服務。
此時我們需要定義一些數據來偽裝,通常我們只需要設置 cookie 、referee、user-agent就夠了(如果有些特殊的網站可能需要我們有其他的參數)?
那么我們cookie這些數據從哪里來呢,我們回到網站的那個請求頭(headers)的檢查元素界面?
在這個界面向下劃動,找到 cookie 、referer 、user-agent?
我們將 cookie 、referer 、user-agent 的數據分別粘貼在代碼里面
import requests
# 請求頭
headers = {
# 用戶身份信息
'cookie' : 'XSRF-TOKEN=KVMLznKAi1u5t7UavCDVyD0I; _s_tentry=weibo.com; Apache=3869338173200.8403.1711845564842; SINAGLOBAL=3869338173200.8403.1711845564842; ULV=1711845565244:1:1:1:3869338173200.8403.1711845564842:; PC_TOKEN=dcbe0bd978; SUB=_2A25LDMCxDeRhGeFJ71sS8CvLzTmIHXVoYFx5rDV8PUNbmtB-LVD9kW9Nf6JZvhCZ3PGanwgbD1yc6zGrHhnf6wrq; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9W586R5s7_p1VykF21DkOu3L5JpX5o275NHD95QNS0B4e05fS0qfWs4DqcjAMJv09CH8SE-4BC-RSFH8SCHFxb-ReEH8SFHFBC-RBbH8Sb-4SEHWSCH81FHWxCHFeFH8Sb-4BEHWB7tt; ALF=1712450401; SSOLoginState=1711845601; WBPSESS=7dB0l9FjbY-Rzc9u1r7G0AeIukWsnj2u9VSmMssaP8z8nNdVQm3MrakDKiijTO3Y_iL6pEDJ8mgGw5Ql6jIh-aVUQoUZdu9LfLYmAiNsLqi43OBU2ZJdNYv4zIWorgKZiAz8JGn2kAugZwnStCVYKw==',
# 防盜鏈
'referer' : 'https://weibo.com/2810373291/O7pPo1Ptb',
# 瀏覽器基本信息
'user-agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.95 Safari/537.36'
}
url = 'https://weibo.com/ajax/statuses/buildComments?is_reload=1&id=5017675820436181&is_show_bulletin=2&is_mix=0&count=10&uid=2810373291'
# 1.發(fā)送請求
response = requests.get(url=url,headers=headers)
#2.打印網頁數據
print(response.text)
運行一下?
?在這里可以看到,我們已經拿到文字式的數據,但是數據過于多和復雜,沒辦法很好的現(xiàn)實提取評論內容
晚點再寫累累累累累,有需要的大家可以先收藏,我會更新的,因為我自己是昨天就做完了,
但是要寫的詳細真的蠻累的?。。。?/p>
yes?。。。?!我又回來更新了?。?!
因為我們又有作業(yè)了,累死我?。。。?!
OK!?。。≡蹅兠魈煺f怎么爬取連續(xù)幾頁的評論文章來源:http://www.zghlxwxcb.cn/news/detail-846065.html
因為其實它這個評論是分頁的,我們一次是爬不完嘟明天說文章來源地址http://www.zghlxwxcb.cn/news/detail-846065.html
到了這里,關于用python語言爬蟲爬取微博評論--上--初步爬蟲(超詳細版,大學生不騙大學生)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!