本例子是參考崔老師的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()
#獲取問題
(question)
author=item.find('
.author-link
').text()
#獲取作者
(author)
answer=pq(item.find('
.content
').html()).text()
#獲取答案(老師寫的沒看懂,可能需要jquery知識)
(answer)
print('
====
'*10)
answer1=item.find('
.zh-summary
').text()
#自己寫的獲取答案。。。
(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...