沒什麼技術含量就是簡單的xpath處理,不過有意思的是有一位csdn員工將自己的部落格位址寫到原始碼裡面了,是乙個隱藏的div, 不過在**中我已經給過濾掉了。
優化了響應時長,畢竟需要分頁爬去,如果不用多執行緒響應時間必然會隨著文章分頁的增多而增多。
**實現
import requests
from lxml import etree
import re
import threading
import operator
defget_page
(url)
: response = requests.get(url)
all_page =
int(re.findall(
'var listtotal = (.*?) ;'
,response.text)[0
])//20+1
return all_page
defparse_article
(url,article_list)
: response = requests.get(url)
.text
x = etree.html(response)
x= x.xpath(
'//div[(@class="article-item-box csdn-tracking-statistics")][not(@style="display: none;")]'
)# article_list =
for item in x:
title = item.xpath(
'h4/a/text()')[
1].strip(
) url = item.xpath(
'h4/a/@href')[
0]pubdata = item.xpath(
'div[@class="info-box d-flex align-content-center"]/p/span[@class="date"]/text()')[
0]pageviews = item.xpath(
'div[@class="info-box d-flex align-content-center"]/p[3]/span/span/text()')[
0]comments = item.xpath(
'div[@class="info-box d-flex align-content-center"]/p[5]/span/span/text()')[
0]article =
dict
( title = title,
url = url,
pubdata = pubdata,
pageviews = pageviews,
comments = comments
)# print(article_list)
defmain
(url)
: main_url = url
all_page = get_page(url)
thread_list =
data =
for page in
range(1
,all_page+1)
: url = main_url +
'/article/list/'
+str
(page)
t = threading.thread(target=parse_article,args=
(url,data)
) t.start(
)for t in thread_list:
t.join(
) data.sort(key=operator.itemgetter(
'pubdata'))
print
(data,
len(data)
)if __name__ ==
'__main__'
: url =
''main(url)
python3爬取CSDN個人所有文章列表頁
沒什麼技術含量就是簡單的xpath處理,不過有意思的是有一位csdn員工將自己的部落格位址寫到原始碼裡面了,是乙個隱藏的div,不過在 中我已經給過濾掉了。優化了響應時長,畢竟需要分頁爬去,如果不用多執行緒響應時間必然會隨著文章分頁的增多而增多。實現 import requests from lxm...
python3爬取電影資料
爬取電影票房資料,用於統計建模分析。目標 為電影票房資料庫 基本的爬取靜態 的技術,模擬登陸使用的是最簡單的cookies。這種模擬登陸的方式雖然簡單但有很大的侷限性,時效性比較短,也許兩三天後就失效了,或者網頁改版一點也會導致失效。最好的方式還是找到登陸頁面,獲取需要提交的資料和提交方式,模擬我們...
python3 小說爬取案例
爬取 具體書籍 res requests.get url,headers header 爬取網頁 web res.text 獲得網頁文字格式 正則匹配方法 匹配除了空格和換行之外的字元 s s 上面的匹配方法無效的時候用這個匹配全部的字元,再用上面的方法進行匹配。具體應用舉例 pattern4 re...