爬取网页数据保存到excel表格里

1、爬取数据(模拟请求)

2、解析数据(数据解析)

3、保存excel表(持久化)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# 导入库
import requests # requests 爬取数据库
from parsel import Selector # parsel 解析数据库
import xlwt # excel 文件的扩展工具
from tqdm import tqdm # 进度条(体验感优化)

# 打开excel表
excel = xlwt.Workbook(encoding='ascii')
# 添加一张表叫book
sheet = excel.add_sheet('book')

# 表头
title_info = ['书名', '月阅读数', '月鲜花数', '总阅读数', '总鲜花数', '最新章节', '图片链接']
for i, title in enumerate(title_info):
sheet.write(0, i, title)

# 1、爬取数据,请求
response = requests.get('https://b.faloo.com/l/44/69/1.html')
# 2、解析当前所有书本对应的url
html = Selector(response.text) # 把response.text里面的Selector给html

# .xpath(xpath) .re(正则) .css(css选择器)
book_list_url = html.xpath('//h1/a/@href').extract()
# print(book_list_url) # len()查看长度
row = 1 # 行等于1
for i in tqdm(book_list_url, desc='当前正在下载', ncols=100): # 每个i就是每个链接
url = 'https:' + i

# 需求分析:
# 抓去 标题、月阅读数、月鲜花数、总阅读数 、总鲜花数、最新章节
# print(url)

# 爬取
book_detail = requests.get(url)
# 解析
html = Selector(book_detail.text)
# 数据a 标题
# 拿1个是extract_first() ,拿多个是extract(0)
a = html.xpath('//h1/text()').extract_first()
sheet.write(row, 0, label=a)
# 数据b 月阅读数
b = html.xpath(
'//div[@class="T-L-O-Zuo"]/div[2]/span[1]/span/text()').extract_first()
sheet.write(row, 1, label=b)
# 数据c 月鲜花数
c = html.xpath(
'//div[@class="T-L-O-Zuo"]/div[2]/span[2]/span/text()').extract_first()
sheet.write(row, 2, label=c)
# 数据d 总阅读数
d = html.xpath(
'//div[@class="T-L-O-Zuo"]/div[2]/span[3]/span/text()').extract_first()
sheet.write(row, 3, label=d)
# 数据e 总鲜花数
e = html.xpath(
'//div[@class="T-L-O-Zuo"]/div[2]/span[4]/span/text()').extract_first()
sheet.write(row, 4, label=e)
# 数据f 最新章节
f = html.xpath('//div[@class="T-L-Three"]/div/a/text()').extract_first()
sheet.write(row, 5, label=f)
# 数据g 图片链接
g = html.xpath('//img[@class="imgcss"]/@src').extract_first()
sheet.write(row, 6, label=g)
row += 1
# print(a, b, c, d, e, f, g)

# 保存excel表
excel.save('title.xls')

CodeKZero WeChat Pay

WeChat Pay

CodeKZero Alipay

Alipay