Python 微博搜尋爬蟲

2022-06-24 05:45:10 字數 2962 閱讀 5102

由於網頁端反爬蟲機制比較完善所以才去移動端進行爬蟲。

對網頁進行抓包,找到相關資料

檢視資料是否與網頁的內容相同

分析多組資料的請求頭

通過網頁分析構造url位址對,位址資訊訪問。

import requests

#構造搜尋內容

data =

#反爬蟲,模擬遊覽器訪問

headers = )

print(result)

檢視結果

獲取到的資料儲存到.cvs檔案中

import csv

import time

from csv import dictwriter

......

#儲存檔案

#檔案的名字

file_name = '電影.csv'

with open(file_name,'a',newline = "",encoding = 'gb18030') as f:

f_csv = dictwriter(f,header) #dictwriter以字典形式寫入

#防止header重複寫入

with open(file_name, 'r', encoding='gb18030', newline="") as file:

reader = csv.reader(file)

if not [row for row in reader]:

f_csv.writeheader()

f_csv.writerows(result)

else:

f_csv.writerows(result)

#延時,防止反爬機制

time.sleep(0.1)

檢視是否生成 「電影.csv」 檔案

完成程式編寫。

為了讓該程式實用美觀,引用tkinter建立gui介面。

from tkinter import *	#tkinter可以快速建立gui應用程式

from csv import dictwriter

......

#建立乙個視窗

root = tk()

#設計視窗大小以及位置 寬高400*100 位置(650,400)

root.geometry('405x80+650+400')

#設計視窗標題

root.title('微博搜尋')

#標籤控制項

#網格顯示標籤,靠左顯示

labl1.grid(sticky=w)

#輸入框

entry = entry(root,font = ('華文行楷',18))

#網格顯示標籤

entry.grid(row=0,column=1,sticky=w)

#搜尋按鈕

button = button(root,text = '搜尋',font = ('華文行楷',15),command=sign)

#command=sign對程式進行對接

#網格式顯示

button.grid(row=0,column=3,sticky=e)

#顯示視窗

對程式改進

def sign():

#獲取輸入結果

key_word = entry.get()

#去除輸入框的空格

key_word = key_word.strip()

#判斷輸入是否為空

if key_word == '':

#提示資訊

#構造搜尋內容

else:

for i in range(1,20):

data = '.format(key_word),

'page_type':'searchall',

'page':i,

}......

#檔案的名字

file_name = key_word + '.csv'

......

#顯示生成檔案

#標籤控制項

labl2 = label(root,text = '查詢完成:{}'.format(file_name),font = ('華文行楷',15))

#網格顯示標籤,靠左顯示

labl2.grid(row=1,column=1)

微博爬蟲python 微博爬蟲 python

本文爬取的是m站的微博內容,基於python 2.7 一 微博內容爬取 1.要爬取的微博首頁 2.手機微博是看不到翻頁,是一直往下載入的,但是其json格式的資料仍然以翻頁的形式呈現。3.開啟開發者工具,向下翻頁面,可以在network下的xhr的響應檔案中,找到json檔案的 如 通過分析發現每個...

爬蟲初探 新浪微博搜尋爬蟲總覽

在這裡需要說明一下,一般來說,資料抓取工作主要有兩種方式 一是通過抓包工具 fiddle 進行抓包分析,獲取ajax請求的url,通過url抓取資料,這也是更為通用 推薦的方法 另外一種方法就是後面要使用的模擬瀏覽器行為的爬蟲。那麼,在源 中資訊不可見的情況下,通過什麼方法能夠提取js 中的html...

Python 爬蟲 微博找人頁面爬蟲(四)

通過分析頁面載入的過程,沒有發現有ajax非同步請求載入,但是selenium又不太穩定,有時會載入很久。那怎麼獲取內容呢?想了想,如果木有ajax非同步請求,那麼其實在第一次請求頁面的時候,頁面上的資訊就已經返回了,只是沒有顯示出來,所以,是通過js顯示response的內容?後面發現頁面有很多 ...