用python实现京东热门图书榜的信息采集

      虽然上次用excel与notepad++实现了这一功能,但如果要求采集更多甚至是全部的话,那手工还是不行的,为了让这个功能更省事,更有扩展性,趁着周末有时间,我觉得还是用python来实现下。
      人生苦短,我用python,python虽好,坑也不少,^_^. pip虽好,但是一些模块就是下载不了,不过好在发现pip也可以像yum一样换成国内的源,这下速度杠杠的了。接下来scrapy的安装特别是lxml的安装又踩坑,依赖问题不好解决,后来发现可以直接下载whl安装,终于解决了这两个老大难,但安装了scrapy之后,也不想去熟悉scrapy的使用,杀鸡不想用牛刀,三天不用又生锈,磨刀误了砍柴工;我想要的是一段简单的代码,如果某天想用了,拿出来直接跑就行;
      所以我选了urllib2与beautifulsoup组合,bs4还不错,看一下文档就熟悉了,它的解析功能及find_all函数杠杠的,直取相要内容,然后作一个循环写入就得到了想要的内容,格式上稍微调整一下就行,再加一层循环,就支持多页采集,想多少页,自己定就好,代码如下:
     

点击(此处)折叠或打开

  1. import urllib2
  2. import time
  3. import re
  4. import xlsxwriter
  5. from bs4 import BeautifulSoup
  6. time.clock()
  7. workbook=xlsxwriter.Workbook('mybooks.xlsx')
  8. for i in range(1,3):
  9.     url = 'https://list.jd.com/list.html?cat=1713,3287,3799&page='+str(i)+'&trans=1&JL=6_0_0'
  10.     page = urllib2.urlopen(url)
  11.     soup = BeautifulSoup(page,"lxml")
  12.     bklist=soup.find('div',id='plist')
  13.     worksheet=workbook.add_worksheet('sheet'+str(i))
  14.     namelist=bklist.find_all('div','p-name')
  15.     zzlist=bklist.find_all('span','p-bi-name')
  16.     cbslist=bklist.find_all('span','p-bi-store')
  17.     dtlist=bklist.find_all('span','p-bi-date')
  18.     for j in range(len(namelist)):
  19.         bkname = namelist[j].get_text().strip()
  20.         worksheet.write(j,0,bkname)
  21.         zzname = zzlist[j].get_text().strip()
  22.         zz=re.sub(r'\s+',' ',zzname)
  23.         worksheet.write(j,1,zz)
  24.         cbsname= cbslist[j].get_text()
  25.         worksheet.write(j,2,cbsname)
  26.         dtname = dtlist[j].get_text()
  27.         worksheet.write(j,3,dtname)
  28. print(time.clock())
  29. workbook.close()


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13365316/viewspace-2126966/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13365316/viewspace-2126966/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值