在初學爬蟲的過程中,我們會發現很多**都使用ajax技術動態載入資料,和常規的**不一樣,資料是動態載入的,如果我們使用常規的方法爬取網頁,得到的只是一堆html**,沒有任何的資料。比如微博就是如此,我們可以通過下滑來獲取更多的動態。對於這樣的網頁該如何抓取呢?我們以微博使用者動態為例,抓取某名使用者的文字動態。思來想去,抓取自己的沒啥意思,不如就看看最近總上熱搜的叨叨魏的微博吧。
首先我們要檢視並分析ajax請求,這樣我們才能對其進行模擬。
我們再來看該請求的相應內容:
到此,我們只需要設定page的範圍,就可以實現微博動態的抓取了,下面是**:
import requests
from urllib.parse import urlencode
from pyquery import pyquery as pq
base_url = ''
headers = )
weibo = {}
weibo['id'] = item.get('id')
weibo['正文'] = pq(item.get('text')).text() #借助pyquery去掉正文中的html
weibo['點讚'] = item.get('attitudes_count')
weibo['**'] = item.get('reposts_count')
yield weibo
if __name__ == '__main__':
for page in range(1, max_page + 1):
json = get_page(page)
results = parse_page(*json)
doc=open("output.txt","a",encoding='utf8')
for result in results:
print(result,file=doc)
doc.close()
用這個程式去看看你關注的人都說過什麼吧!也可以結合我們之前寫過的詞頻統計程式,總結一下對方的遣詞造句和文化造詣。
Python爬取知乎溫酒小故事
關於登陸的問題,可以參考我的另一篇部落格 在這裡記錄一下我在爬取溫酒小故事的時候遇到的問題以及解決辦法 css選擇器無效,只好通過觀察,用正規表示式直接從html裡提取資訊。import requests from bs4 import beautifulsoup import re from ur...
python加cookie爬取知乎主頁
from urllib import request zhihu url headers req request.request url zhihu url,headers headers resp request.urlopen req with open zhihu.html w encodin...
Python知乎熱門話題爬取
本例子是參考崔老師的python3網路爬蟲開發實戰寫的 看網頁介面 熱門話題都在 explore feed feed item的div裡面 原始碼如下 import requests from pyquery import pyquery as pq url 今日最熱 url monthly hot...