因为想学习数据库,想要获取较大量的数据,第一个想到的自然就是淘宝。。。。其中有大量的商品信息,淘宝网反爬措施还是比较多,特别是详情页面还有恶心的动态内容
该例子中使用Scrapy框架中的基础爬虫(CrawlSpider还有点没搞清楚= = b)
先贴上整体代码
import scrapy
import re
import csv
import pymongo
from tmail.items import TmailItem
class WeisuenSpider(scrapy.Spider):
name = 'weisuen'
start_url = 'https://s.taobao.com/search?q=%E5%B8%BD%E5%AD%90&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.50862.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170817&s=300'
detail_urls=[]
data=[]
client=pymongo.MongoClient("localhost",27017)
db=client.taobao
db=db.items
def start_requests(self):
for i in range(30):#爬31页数据差不多了
url=self.start_url+'&s='+str(i*44)
yield scrapy.FormRequest(url=url,callback=self.parse)
def url_decode(self,temp):
while '\\' in temp:
index=temp.find('\\')
st=temp[index:index+7]
temp=temp.replace(st,'')
index=temp.find('id')
temp=temp[:index+2]+'='+temp[index+2:]