虽然上次用excel与notepad++实现了这一功能,但如果要求采集更多甚至是全部的话,那手工还是不行的,为了让这个功能更省事,更有扩展性,趁着周末有时间,我觉得还是用python来实现下。
人生苦短,我用python,python虽好,坑也不少,^_^. pip虽好,但是一些模块就是下载不了,不过好在发现pip也可以像yum一样换成国内的源,这下速度杠杠的了。接下来scrapy的安装特别是lxml的安装又踩坑,依赖问题不好解决,后来发现可以直接下载whl安装,终于解决了这两个老大难,但安装了scrapy之后,也不想去熟悉scrapy的使用,杀鸡不想用牛刀,三天不用又生锈,磨刀误了砍柴工;我想要的是一段简单的代码,如果某天想用了,拿出来直接跑就行;
所以我选了urllib2与beautifulsoup组合,bs4还不错,看一下文档就熟悉了,它的解析功能及find_all函数杠杠的,直取相要内容,然后作一个循环写入就得到了想要的内容,格式上稍微调整一下就行,再加一层循环,就支持多页采集,想多少页,自己定就好,代码如下:
人生苦短,我用python,python虽好,坑也不少,^_^. pip虽好,但是一些模块就是下载不了,不过好在发现pip也可以像yum一样换成国内的源,这下速度杠杠的了。接下来scrapy的安装特别是lxml的安装又踩坑,依赖问题不好解决,后来发现可以直接下载whl安装,终于解决了这两个老大难,但安装了scrapy之后,也不想去熟悉scrapy的使用,杀鸡不想用牛刀,三天不用又生锈,磨刀误了砍柴工;我想要的是一段简单的代码,如果某天想用了,拿出来直接跑就行;
所以我选了urllib2与beautifulsoup组合,bs4还不错,看一下文档就熟悉了,它的解析功能及find_all函数杠杠的,直取相要内容,然后作一个循环写入就得到了想要的内容,格式上稍微调整一下就行,再加一层循环,就支持多页采集,想多少页,自己定就好,代码如下:
点击(此处)折叠或打开
- import urllib2
- import time
- import re
- import xlsxwriter
- from bs4 import BeautifulSoup
- time.clock()
- workbook=xlsxwriter.Workbook('mybooks.xlsx')
- for i in range(1,3):
- url = 'https://list.jd.com/list.html?cat=1713,3287,3799&page='+str(i)+'&trans=1&JL=6_0_0'
- page = urllib2.urlopen(url)
- soup = BeautifulSoup(page,"lxml")
- bklist=soup.find('div',id='plist')
- worksheet=workbook.add_worksheet('sheet'+str(i))
- namelist=bklist.find_all('div','p-name')
- zzlist=bklist.find_all('span','p-bi-name')
- cbslist=bklist.find_all('span','p-bi-store')
- dtlist=bklist.find_all('span','p-bi-date')
- for j in range(len(namelist)):
- bkname = namelist[j].get_text().strip()
- worksheet.write(j,0,bkname)
- zzname = zzlist[j].get_text().strip()
- zz=re.sub(r'\s+',' ',zzname)
- worksheet.write(j,1,zz)
- cbsname= cbslist[j].get_text()
- worksheet.write(j,2,cbsname)
- dtname = dtlist[j].get_text()
- worksheet.write(j,3,dtname)
- print(time.clock())
- workbook.close()
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13365316/viewspace-2126966/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13365316/viewspace-2126966/