Python知乎熱門話題爬取

2022-01-20 05:19:03 字數 1885 閱讀 5882

本例子是參考崔老師的python3網路爬蟲開發實戰寫的

看網頁介面:

熱門話題都在 explore-feed feed-item的div裡面

原始碼如下:

import

requests

from pyquery import

pyquery as pq

url='

'#今日最熱

#url='#monthly-hot' #本月最熱

headers=

html=requests.get(url,headers=headers).text

doc=pq(html)

#print(doc)

items=doc('

.explore-feed.feed-item

').items()

for item in

items:

question=item.find('h2'

).text()

#獲取問題

print

(question)

author=item.find('

.author-link

').text()

#獲取作者

print

(author)

answer=pq(item.find('

.content

').html()).text()

#獲取答案(老師寫的沒看懂,可能需要jquery知識)

print

(answer)

print('

====

'*10)

answer1=item.find('

.zh-summary

').text()

#自己寫的獲取答案。。。

print

(answer1)

#第一種寫入方法

file=open('

知乎.txt

','a

',encoding='

utf-8')

file.write('\n

'.join([question,author,answer]))

file.write('\n

'+'****

'*50+'\n'

) file.close()

#第二種寫入方法 不需要寫關閉方法

with open('

知乎.txt

','a

',encoding='

utf-8

') as fp:

fp.write('\n

'.join([question, author, answer]))

fp.write('\n

' + '

****

' * 50 + '

\n')

執行結果如下:

不過比較奇怪的地方是 url為今日最熱和本月最熱 所爬取的結果一模一樣。。而且都只能爬下五個div裡面的東西,可能是因為知乎是動態介面。需要用到selenium吧

還有就是

answer=pq(item.find('.content').html()).text()

#獲取答案(老師寫的沒看懂,可能需要jquery知識)

這行**沒有看懂。。。。

還得學習jquery

python動態爬取知乎 python爬取微博動態

在初學爬蟲的過程中,我們會發現很多 都使用ajax技術動態載入資料,和常規的 不一樣,資料是動態載入的,如果我們使用常規的方法爬取網頁,得到的只是一堆html 沒有任何的資料。比如微博就是如此,我們可以通過下滑來獲取更多的動態。對於這樣的網頁該如何抓取呢?我們以微博使用者動態為例,抓取某名使用者的文...

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...