室友想写个图书管理系统,苦于没有数据,
然而爬取周读网,网上的爬虫基本都失效了,
我就又写了个爬虫。
目标:爬取网站:http://www.ireadweek.com/ ,将【id,封面,书名,作者,分类,豆瓣评分,简介,下载链接】,存到CSV及mysql数据库中。
网上的文章基本都过时了,本篇文章学习即可,这么好的分享网站,尽量不要去爬,影响人家访问速度就不好了
先给个v0.1版本的,
1 | from lxml import etree |
XPath 是一门在 XML 文档中查找信息的语言。XPath 最初设计是用来搜寻XML文档的,但是它同样适用于 HTML 文档的搜索。
XPath 的选择功能十分强大,它提供了非常简洁明了的路径选择表达式,另外它还提供了超过 100 个内建函数用于字符串、数值、时间的匹配以及节点、序列的处理等等,几乎所有我们想要定位的节点都可以用XPath来选择。
所以在做爬虫时,我们完全可以使用 XPath 来做相应的信息抽取。
这个比较简单,有爬虫基础的同学应该能看懂,就不细说了。
然后,就是增加了写入CSV文件的v1.0版本,
1 | import requests |
基本实现了爬取所有书籍的信息列表并存入CSV文件。
这里用到了一些类和对象的知识,还是很好理解的吧。eval(getFatherIntfo())
是获取最新更新的书籍的id。''.join(Link)
是把解析出的列表转换为string字符串。csv_writer.writerow()
是把这个列表写入CSV文件中。
得到的结果有一些问题,比如说:部分书籍的一些信息为没有(网站的标签不尽相同的原因,,,),这个CSV文件在一些Excel中打开是乱码。
v2.0的存mysql版本,还有些问题,改改再更。