導航:首頁 > 網路信息 > 如何爬取多個網站文章

如何爬取多個網站文章

發布時間:2023-03-04 17:33:44

『壹』 如何盜取網站上的文章!!!

點擊文件-另存為-存為TXT文本文檔(文件類型改為TXT),然後打開文檔就OK了,我經常乾的,嘿嘿

『貳』 如何抓取微信所有公眾號最新文章

經常有朋友需要幫忙做公眾號文章爬取,這次來做一個各種方法的匯總說明。
目前爬取微信公眾號的方法主要有3種:

可以直接搜索公眾號或者文章的關鍵字,一些熱門的公眾號更新還是很及時的,幾乎做到了和微信同步。

所以,爬一些熱門公眾號可以使用搜狗微信的介面來做,但是一些小眾公眾號是搜索不到的,而且搜狗的防爬機制更新的比較勤,獲取數據的介面變化的比較快,經常兩三個月就有調整,導致爬蟲很容易掛,這里還是建議使用 selenium爬比較省心。另外搜狗對每個ip也有訪問限制,訪問太頻ip會被封禁24小時,需要買個ip池來做應對。
還有一些其他公眾號文章聚合網站(比如傳送門)也都存在更新不及時或者沒有收錄的問題,畢竟搜狗這個親兒子都不行。

通過微信公眾平台引用文章介面

這個介面比較隱蔽而且沒法匿名訪問,所有得有一個公眾號,建議新注冊一個公眾號比較好,免得被封。
下面開始具體步驟:首先登錄自己的微信公眾號,在進去的首頁選擇 新建群發,然後再點擊 自建圖文,在文章編輯工具欄中找到 超鏈接,如下圖:

到這里就可以輸入公眾號的名字,回車之後微信就會返回相匹配的公眾號列表,接著點擊你想抓取的公眾號,就會顯示具體的文章列表了,已經是按時間倒序了,最新的文章就是第一條了。

微信的分頁機制比較奇怪,每個公眾號的每頁顯示的數據條數是不一樣的,分頁爬的時候要處理一下。
通過chrome分析網路請求的數據,我們想要的數據已經基本拿到了,文章鏈接、封面、發布日期、副標題等,如

由於微信公眾平台登錄驗證比較嚴格,輸入密碼之後還必須要手機掃碼確認才能登錄進去,所以最好還是使用 selenium做自動化比較好。具體微信介面的分析過程我就不列了,直接貼代碼了:

代碼只是作為學習使用,沒有做分頁查詢之類。實測過介面存在訪問頻次限制,一天幾百次還是沒啥問題,太快或者太多次訪問就會被封24小時。

『叄』 如何用python寫爬蟲來獲取網頁中所有的文章以及關鍵詞

所謂網頁抓取,就是把URL地址中指定的網路資源從網路流中讀取出來,保存到本地。
類似於使用程序模擬IE瀏覽器的功能,把URL作為HTTP請求的內容發送到伺服器端, 然後讀取伺服器端的響應資源。

在Python中,我們使用urllib2這個組件來抓取網頁。
urllib2是Python的一個獲取URLs(Uniform Resource Locators)的組件。

它以urlopen函數的形式提供了一個非常簡單的介面。

最簡單的urllib2的應用代碼只需要四行。

我們新建一個文件urllib2_test01.py來感受一下urllib2的作用:

import urllib2
response = urllib2.urlopen('http://www..com/')
html = response.read()
print html

按下F5可以看到運行的結果:

我們可以打開網路主頁,右擊,選擇查看源代碼(火狐OR谷歌瀏覽器均可),會發現也是完全一樣的內容。

也就是說,上面這四行代碼將我們訪問網路時瀏覽器收到的代碼們全部列印了出來。

這就是一個最簡單的urllib2的例子。

除了"http:",URL同樣可以使用"ftp:","file:"等等來替代。

HTTP是基於請求和應答機制的:

客戶端提出請求,服務端提供應答。

urllib2用一個Request對象來映射你提出的HTTP請求。

在它最簡單的使用形式中你將用你要請求的地址創建一個Request對象,

通過調用urlopen並傳入Request對象,將返回一個相關請求response對象,

這個應答對象如同一個文件對象,所以你可以在Response中調用.read()。

我們新建一個文件urllib2_test02.py來感受一下:

import urllib2
req = urllib2.Request('http://www..com')
response = urllib2.urlopen(req)
the_page = response.read()
print the_page

可以看到輸出的內容和test01是一樣的。

urllib2使用相同的介面處理所有的URL頭。例如你可以像下面那樣創建一個ftp請求。

req = urllib2.Request('ftp://example.com/')

在HTTP請求時,允許你做額外的兩件事。

1.發送data表單數據

這個內容相信做過Web端的都不會陌生,

有時候你希望發送一些數據到URL(通常URL與CGI[通用網關介面]腳本,或其他WEB應用程序掛接)。

在HTTP中,這個經常使用熟知的POST請求發送。

這個通常在你提交一個HTML表單時由你的瀏覽器來做。

並不是所有的POSTs都來源於表單,你能夠使用POST提交任意的數據到你自己的程序。

一般的HTML表單,data需要編碼成標准形式。然後做為data參數傳到Request對象。

編碼工作使用urllib的函數而非urllib2。

我們新建一個文件urllib2_test03.py來感受一下:

import urllib
import urllib2
url = 'http://www.someserver.com/register.cgi'
values = {'name' : 'WHY',
'location' : 'SDU',
'language' : 'Python' }
data = urllib.urlencode(values) # 編碼工作
req = urllib2.Request(url, data) # 發送請求同時傳data表單
response = urllib2.urlopen(req) #接受反饋的信息
the_page = response.read() #讀取反饋的內容

如果沒有傳送data參數,urllib2使用GET方式的請求。

GET和POST請求的不同之處是POST請求通常有"副作用",

它們會由於某種途徑改變系統狀態(例如提交成堆垃圾到你的門口)。

Data同樣可以通過在Get請求的URL本身上面編碼來傳送。

import urllib2
import urllib
data = {}
data['name'] = 'WHY'
data['location'] = 'SDU'
data['language'] = 'Python'
url_values = urllib.urlencode(data)
print url_values
name=Somebody+Here&language=Python&location=Northampton
url = 'http://www.example.com/example.cgi'
full_url = url + '?' + url_values
data = urllib2.open(full_url)

這樣就實現了Data數據的Get傳送。

2.設置Headers到http請求

有一些站點不喜歡被程序(非人為訪問)訪問,或者發送不同版本的內容到不同的瀏覽器。

默認的urllib2把自己作為「Python-urllib/x.y」(x和y是Python主版本和次版本號,例如Python-urllib/2.7),

這個身份可能會讓站點迷惑,或者乾脆不工作。

瀏覽器確認自己身份是通過User-Agent頭,當你創建了一個請求對象,你可以給他一個包含頭數據的字典。

下面的例子發送跟上面一樣的內容,但把自身模擬成Internet Explorer。

(多謝大家的提醒,現在這個Demo已經不可用了,不過原理還是那樣的)。

import urllib
import urllib2
url = 'http://www.someserver.com/cgi-bin/register.cgi'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
values = {'name' : 'WHY',
'location' : 'SDU',
'language' : 'Python' }
headers = { 'User-Agent' : user_agent }
data = urllib.urlencode(values)
req = urllib2.Request(url, data, headers)
response = urllib2.urlopen(req)
the_page = response.read()

以上就是python利用urllib2通過指定的URL抓取網頁內容的全部內容,非常簡單吧,希望對大家能有所幫助。

閱讀全文

與如何爬取多個網站文章相關的資料

熱點內容
windows7系統共享文件 瀏覽:62
ps前往文件夾 瀏覽:694
信捷plc編程用哪個軟體 瀏覽:939
vba導入文件 瀏覽:690
更新後版本英文怎麼說 瀏覽:267
桌面雲配置文件分離 瀏覽:505
iphone5如何升級4g網路 瀏覽:5
團購是在哪個app 瀏覽:897
打開多個word文檔圖片就不能顯示 瀏覽:855
騰訊新聞怎麼切換版本 瀏覽:269
app安裝失敗用不了 瀏覽:326
桌面文件滑鼠點開會變大變小 瀏覽:536
手機誤刪系統文件開不了機 瀏覽:883
微信兔子甩耳朵 瀏覽:998
android藍牙傳文件在哪裡 瀏覽:354
蘋果6s軟解是真的嗎 瀏覽:310
c語言代碼量大 瀏覽:874
最新網路衛星導航如何使用 瀏覽:425
以下哪些文件屬於圖像文件 瀏覽:774
zycommentjs 瀏覽:414

友情鏈接