crawlist
从web网站抓取列表数据的通用解决方案
介绍
您可以使用crawlist对包含列表的网站进行数据爬取,通过一些简单的配置,您可以获得所有列表数据。
安装
你可以使用 pip 或者 pip3 来安装crawlist
pip install crawlist
or pip3 install crawlist
如果你已经安装了crawlist,可能需要更新到最新版本
pip install --upgrade crawlist
快速开始
这是一个静态网站案例,该网站没有使用js去驱动视图
import crawlist as cl
if __name__ == '__main__':
# 初始化一个pager来实现翻页
pager = cl.StaticRedirectPager(uri="https://www.douban.com/doulist/893264/?start=0&sort=seq&playable=0&sub_type=",
uri_split="https://www.douban.com/doulist/893264/?start=%v&sort=seq&playable=0&sub_type=",
start=0,
offset=25)
# 初始化一个selector来爬取列表
selector = cl.CssSelector(pattern=".doulist-item")
# 初始化一个分析器,实现翻页+爬取列表
analyzer = cl.AnalyzerPrettify(pager, selector)
res = []
limit = 100
# 在分析器中迭代limit条数据
for tr in analyzer(limit):
print(tr)
res.append(tr)
# 如果该网站所有数据都被抓取,则len(res)会小于limit
print(len(res))
这是一个动态网站案例,它使用js去驱动视图,所以我们需要使用selenium去爬取
import crawlist as cl
if __name__ == '__main__':
# 初始化一个pager来实现翻页
pager = cl.DynamicScrollPager(uri="https://ec.ltn.com.tw/list/international")
# 初始化一个selector来爬取列表
selector = cl.CssSelector(pattern="#ec > div.content > section > div.whitecon.boxTitle.boxText > ul > li")
# 初始化一个分析器,实现翻页+爬取列表
analyzer = cl.AnalyzerPrettify(pager=pager, selector=selector)
res = []
# 在分析器中迭代limit条数据
limit = 100
for tr in analyzer(limit):
print(tr)
res.append(tr)
print(len(res))
# 如果该网站所有数据都被抓取,则len(res)会小于limit
pager.webdriver.quit()
最后更新于