文献检索作业,小白也很无奈。还好有学霸同学的可以借鉴。
获取当当网上至少300本书【均为某类书,如Linux相关的书籍,或C++相关的书籍】的信息,包括书名,网址,价格,作者,并存在excel表格中。
源代码分析
在当当网的搜索框输入“Linux”,出现搜索后的页面,按F12查看源代码。
目标信息定位与分析
备注:有些书是没有出版社的,因此本文不爬取出版社信息。
通过观察,可以发现,每个被定为的标签均出现60次【使用ctrl+F,在源代码页面进行页内搜索】,从而可判断,该页面上共有60本书。但每个页面上所放的商品书籍所占的页面面积不同,因此不一定每个页面都准确地有60本书,但会约在60本左右。
代码设计
安装BeautifulSoup库,pandas库
BeautifulSoup库的安装
Win平台:“以管理员身份运行” cmd
执行 pip install beautifulsoup4( pip install bs4) beautifulsoup4移入到bs4里面去了。
演示HTML页面地址:http://python123.io/ws//demo.html
python -m pip install --upgrade pip(我的pip版本比较旧,就更新了一下)
pandas库的安装
pip install pandas
目标链接分析
总共要爬取至少300本书的信息,每个页面上共约60本书,所以共须爬取至少5个页面。在当当网中的搜索框,输入”python”,可得到python书籍的搜索结果页面,观察可列出目标页面,如下所示:
http://search.dangdang.com/?key=Linux&act=input(http://search.dangdang.com/?key=Linux&act=input&page_index=1)
http://search.dangdang.com/?key=Linux&act=input&page_index=2
http://search.dangdang.com/?key=Linux&act=input&page_index=3
http://search.dangdang.com/?key=Linux&act=input&page_index=4
http://search.dangdang.com/?key=Linux&act=input&page_index=5
代码设计
1.确定每个被定位标签出现次数是一样的。如果不一样,则会出现,“作者”收集到60个,“书名”收集到70个,则结果出错。
2.确定同一个页面中每本书的标签结构都是一样的。若果不一样,则无法通过同一个函数去提取每本书的信息。
3.确定每个页面的标签结构都是一样的。如果不一样,则无法通过同一个函数去爬取所有的目标页面。
备注:该代码只适合上面的逻辑,若要使用,一定要对代码进行修改,特别是网址部分。