2019-12-01
今天进行异步加载的练习,练习的网页是:简书大学堂https://www.jianshu.com/c/e048f1a72e3d?order_by=added_at&page=1
进入页面,会发现该页面跟平常的网页不太一样,它没有“下一页”类似的按钮,滚动鼠标即刻加载了新的页面信息,这种就采用了异步加载的技术。
今天我们爬取的内容有:文章的摘要、作者、标题、点赞数。
from lxml import etree
import re
import requests
import time
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}
urls=['https://www.jianshu.com/c/e048f1a72e3d?order_by=added_at&page={}'.format(i) for i in range(1,4)]
abs=[]#创建空列表储存“摘要”
for url in urls:
page=requests.get(url,headers=headers)
time.sleep(3)
select=etree.HTML(page.text)
title=select.xpath('//div/a[@class="title"]/text()')
abstracts=select.xpath('//p[@class="abstract"]/text()')#爬取摘要
for ab in abstracts:#对摘要进行简单的处理
ab=ab.replace("\n","")
ab = ab.replace(' ', '')
abs.append(ab)
like=re.findall(r'<span><i class="iconfont ic-list-like"></i> (.*?)</span>',page.text)#爬取点赞数
author=select.xpath('//a[@class="nickname"]/text()')
for t,a,k,au in zip(title,abs,like,author):#进行打包输出
data={
"标题":t,
"作者": au,
"点赞数":k,
"摘要": a
}
print(data)
爬取的结果如下:
若有不足之处,请给予指正
谢谢啦