爬取简书ajxs动态化数据并存储到ecxel中!
# -*- coding: utf-8 -*-
"""
Created on Tue Nov 17 10:30:23 2020
@author: Yuka
"""
'''
网址为https://www.jianshu.com/u/9104ebf5e177,爬取内容为简书用户的最新评论中的评论题目、评论内容及评论时间,爬取5页,将这些评论存入Excel文件中,文件后缀为.xls。
'''
import requests
import time
from lxml import etree
import xlwt
from multiprocessing.dummy import Pool
import re
ls = [["title","content","time"]]
def get_info(url):
headers= {
"为了本宝宝ip长存,这里你们自己想办法吧~"
}
info = requests.get(url=url,headers=headers).text
res = etree.HTML(info)
title = res.xpath('//div[@id="list-container"]/ul[@class="note-list"]/li/div/a/text()')
content = res.xpath('//div[@id="list-container"]/ul[@class="note-list"]/li/div/p/text()')
time = res.xpath('//div[@id="list-container"]/ul[@class="note-list"]/li/div/div[@class="meta"]/span/@data-shared-at')
for title,content,time in zip(title,content,time):
dic = {
'title':title.strip(),
'content':content.strip(),
'time':time.strip().replace('T',' ').split('+')[0]
}
ls.append([dic['title'],dic['content'],dic['time']])
def save_xlsx(ls):
writer = xlwt.Workbook(encoding='utf-8')
sheet_01 = writer.add_sheet('最新评论')
for i in range(len(ls)):
for j in range(len(ls[i])):
sheet_01.write(i,j,ls[i][j])
writer.save('C:/Users/小米帅哥/Desktop/easy_book.xlsx')
if __name__ =='__main__':
urls = ['https://www.jianshu.com/u/9104ebf5e177?order_by=shared_at&page={}'.format(i) for i in range(1,6)]
for url in urls:
get_info(url)
save_xlsx(ls)
print(url+"存储完毕!")