scrapy分页抓取网页(本篇博客在爬取新闻网站信息2的基础上进行)
优采云 发布时间: 2022-01-18 05:10scrapy分页抓取网页(本篇博客在爬取新闻网站信息2的基础上进行)
本博客基于爬取新闻网站信息2.主要内容如下:
1.定义一个函数来获取一个页面上的 20 个链接
2.构造多个分页链接
3.获取多个分页链接新闻内容
4.使用pandas整理爬取的数据
5.将数据保存到 csv 文件
6.Scrapy 安装
1.定义一个函数来获取一个页面上的 20 个链接
#定义获取一页20条链接内容的函数
def parseListLinks(url):
newsdetails = []
res = requests.get(url)
jd = json.loads(res.text)
#获取一个页面所有链接(20个左右)
for ent in jd['result']['data']:
#getNewsDetail为获取一个链接内容详情
newsdetails.append(getNewsDetail(ent['url']))
return newsdetails
#测试
url = 'https://feed.sina.com.cn/api/roll/get?pageid=121&lid=1356&num=20&versionNumber=1.2.4&page=1&encode=utf-8'
parseListLinks(url)
2.构造多个分页链接
#构造多个分页链接
pageurl = "https://feed.sina.com.cn/api/roll/get?pageid=121&lid=1356&num=20&versionNumber=1.2.4&page={}&encode=utf-8"
for i in range(1,10):
newsurl = pageurl.format(i)
print(newsurl)
3.获取多个分页链接新闻内容
#抓取多个分页链接新闻内容
import requests
url = 'https://feed.sina.com.cn/api/roll/get?pageid=121&lid=1356&num=20&versionNumber=1.2.4&page={}&encode=utf-8'
news_total = []
for i in range(1,3):
newsurl = url.format(i)
newsary = parseListLinks(url)
news_total.extend(newsary)
#测试打印抓取的两个页面
print(news_total)
4.使用pandas整理爬取的数据
Pandas 是一个 Python 数据分析包(Python Data Analysis Library)。这里我们使用pandas的DataFrame函数将爬取的数据组织成二维表格数据结构。
安装pandas套件:进入cmd命令行,输入以下命令进行安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas
#用pandas整理爬取出的资料
import pandas
df = pandas.DataFrame(news_total)
#查看后5行数据
df.tail()
5.将数据保存到 csv 文件
使用 to_csv 函数将数据存储在 csv 文件中。 “ruiyigongfang.csv”是我们导出的文件名,存放在jupyter notebook启动的根目录下,一般在C:\Users\Administrator目录下。
查看ruiyigongfang.csv文件内容
至此,用python3爬取新闻网站信息的项目已经完成。
总结一下:
爬虫的主要过程分为三个阶段:
下载数据:使用requests套件,通过requests.get('url')方法获取网页信息
提取数据:使用BeautifulSoup4套件通过soup.select('xxx');解析关系的内容
保存数据:通过pandas套件将数据组织成二维数据结构,然后通过to_csv()函数将数据以csv格式保存到本地。
----------------------------------- ---------- ---------------------------------------- -----
接下来会有第二个python爬虫项目,等待下一篇博客更新!
这里先介绍一个简单强大的爬虫框架Scrapy的安装,为后续项目做准备。
Scrapy 安装
环境:windows系统,python3
步骤:
1.安装轮子:
py -3 -m pip install wheel
2.安装 lxml:
py -3 -m pip install lxml
3.安装 Twisted:
下载 Twisted:~gohlke/pythonlibs/#twisted
注意:下载的版本要与安装的python版本和电脑位数一致。对于python3.7,选择cp37,其他版本依次类推。例如:
安装 Twisted:
pip install xxx/xxx/Twistedxxx
注意:xxx/xxx/Twistedxxx是下载的twisted文件所在的绝对路径。比如下载的文件放在D:\目录下,文件名为Twisted‑18.9.0‑cp37‑cp37m‑win_amd64.whl
命令应该是 pip install D:\Twisted‑18.9.0‑cp37‑cp37m‑win_amd64.whl
4.安装 Scrapy:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scrapy
5.安装win32py
下载:,注意下载与python版本和电脑位数一致的文件
安装:双击pywin32-224.win-amd64-py3.7.exe文件安装
6.验证
scrapy -h
说明:
安装Scrapy依赖wheel、lxml、Twisted模块
运行 Scrapy 依赖于 win32py
完成!尽情享受吧!