四、开始爬取
首先建立spider,爬取之前,设置name,爬取网站url等信息,并设置爬取时间间隔防止被ban。
name = "FindGoods"
download_delay = 4
allowed_domains = ["tmall.com"]
start_urls = [
"https://www.tmall.com/"
]
确定我们需要爬取的商品相关信息。观察天猫搜素结果页,我们可以获取到的信息包括商品名称、店铺名称、价格、月成交量和评论数。为了实现之后点击item跳转购买界面的功能,我们还应当获取该商品购买界面的url信息。此外,我们还需预留分数字段以存储根据商品成交量和评论数计算得到的分数信息。确定爬取信息之后定义item.py如下:
name = Field()
shop = Field()
price = Field()
trading = Field()
review = Field()
url = Field()
score = Field()
继续观察天猫搜素结果页,我们可以通过审查页面要素得到我们需得到的商品信息在页面中的位置。Scrapy中页面位置信息通过xpath获取。由于天猫电器城情况特殊,我们还需要单独对电子产品页面进行单独分析。最终分析得到的要素爬取xpath信息如下:
gifts = sel.xpath('//*[@id="J_ItemList"]/div[@class="product "]')
for gift in gifts:
name = gift.xpath('div/p[@class="productTitle"]/a/@title').extract()
# 天猫电器城HTML结构不同