簡書7日熱門crawl

論文要開題,想了老久的要寫的內容,結果發現被人家換個名字全部寫完了。吐了兩天的血了。。。

沒活路了

回歸正題,向右老師布置了第一個作業,爬取簡書七日熱門的
1.用戶
2.標題
3.閱讀量
4.評論量
5.獲贊量
6.打賞數
7.文章發表時間
跟前面的爬異步加載的文章是一樣的,就是要找出真實的網頁地址

Paste_Image.png
Paste_Image.png

可以看到,加載的越多,URL就越長,這沒法構建啊!
加載到最后,看到了第一行,把它復制到瀏覽器里,看到了什么? 大聲告訴我你看到來了什么?


Paste_Image.png

是的,這就是我們要的了。那就沒問題了,老套路走起。

Paste_Image.png
import requests
from lxml import etree
import time
import csv

def crawl1(url):
   html= requests.get(url).content
   sel= etree.HTML(html)
   infos= sel.xpath('//ul[@class="note-list"]/li/div[@class="content"]')
   for info in infos:
       list1=[]
       author= info.xpath('div[@class="author"]/div/a/text()')[0]
       get_time = info.xpath('div[@class="author"]/div/span/@data-shared-at')[0].replace('T',' ')
       title = info.xpath('a[@class="title"]/text()')[0]
       read_num = info.xpath('div[@class="meta"]/a[1]/text()')[1][:-1]#這里要對爬下來的數據修改一下。
       comment_num = info.xpath('div[@class="meta"]/a[2]/text()')[1][:-1]
       point_num = info.xpath('div[@class="meta"]/span[1]/text()')[0]
       reward_num = info.xpath('div[@class="meta"]/span[2]/text()')
       if len(reward_num) ==0: # 有的文章是沒有打賞的,就要判斷一下了。
           reward_num = '無贊賞'
       else:
           reward_num = reward_num[0]
       print(author,get_time,title,read_num,comment_num,point_num,reward_num)
       list1.append(author),list1.append(get_time),list1.append(title),list1.append(read_num),list1.append(comment_num),list1.append(point_num),list1.append(reward_num)
       with open('d:\\簡書.csv', 'a+') as f:
           f.write('author,get_time,title,read_num,comment_num,point_num,reward_num\n')
           f.write('{},{},{},{},{},{},{}'.format(author,get_time,title,read_num,comment_num,point_num,reward_num)+'\n')

if __name__=='__main__':
   for i in range(1,6):
       url= 'http://www.lxweimin.com/trending/weekly?utm_medium=index-banner-s&utm_source=desktop&page=%s'%i
       print('正在處理第%d頁'%i)
       crawl1(url)

爬取結果如圖

Paste_Image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容