本文将介绍利用Requests、Lxml第三方库及逆向工程方法,爬去简书用户文章信息,并通过pymysql库将爬取数据放到mysql数据库中。
需要的工具:python3、mysql
需要安装的包:Requets、Lxml、pymsql
本文以爬取简书用户三步一叩首的文章信息为例,爬去数据包括:文章标题、阅读量、评论数、点赞量
在写爬虫之前,先在数据库database中新建jianshu表来存放爬取的数据,代码如下:
本文使用Xpath来解析网页,具体代码如下:
import requests
from lxml import etree
import pymysql
conn = pymysql.connect(host='localhost',user='root',passwd='200709',db='database',port=3306,charset='utf8')
cursor = conn.cursor()
urls = ['https://www.jianshu.com/u/57521b4790dc?order_by=shared_at&page={}'.format(str(i)) for i in range(1,17)]
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
}
for url in urls:
html = requests.get(url,headers=headers)
selector = etree.HTML(html.text)
infos = selector.xpath('//ul[@class="note-list"]/li')
for info in infos:
title = info.xpath('div/a/text()')[0]
total_read = info.xpath('div/div/a[1]/text()')[1].strip()
words = info.xpath('div/div/a[2]/text()')[1].strip()
liked = info.xpath('div/div/span[1]/text()')[0].strip()
cursor.execute("insert into jianshu(title,total_read,words,liked) values(%s,%s,%s,%s)",
(str(title),str(total_read),str(words),str(liked)))
conn.commit()
运行代码过后,打开mysql,发现数据已经保存到jianshu表中。
网友评论