Scrapy+XPath:爬取天猫商品信息
发布时间:2024-01-04 03:05:52
在爬虫中,XPath是一种在XML文档中定位和选择节点的语言。Scrapy是一个用Python编写的网络爬虫框架,可以用于快速、高效地抓取网页内容。
下面是一个使用Scrapy和XPath来爬取天猫商品信息的示例代码:
import scrapy
class TmallSpider(scrapy.Spider):
name = 'tmall_spider'
start_urls = ['https://list.tmall.com/search_product.htm?q=手机'] # 要爬取的起始url
def parse(self, response):
# 使用XPath定位商品信息节点
items = response.xpath('//div[contains(@class, "product-item")]')
for item in items:
# 使用XPath获取商品名称
name = item.xpath('.//p[@class="productTitle"]/a/@title').extract_first()
# 使用XPath获取商品价格
price = item.xpath('.//p[@class="productPrice"]/em/@title').extract_first()
# 使用XPath获取商品链接
link = item.xpath('.//p[@class="productTitle"]/a/@href').extract_first()
# 打印商品信息
print('商品名称:', name)
print('商品价格:', price)
print('商品链接:', link)
print('------------')
# 获取下一页的链接
next_page_link = response.xpath('//a[@class="ui-page-next"]/@href').extract_first()
if next_page_link:
# 构造下一页的URL并发送请求
next_page_url = response.urljoin(next_page_link)
yield scrapy.Request(next_page_url, callback=self.parse)
在上面的代码中,首先定义了一个继承自scrapy.Spider的类TmallSpider。然后在start_urls中指定了要爬取的起始url。
在parse方法中,使用XPath定位商品信息节点,并使用XPath获取商品名称、价格和链接。然后打印商品信息。
接着使用XPath获取下一页的链接,并构造下一页的URL发送请求。
最后,通过运行scrapy crawl tmall_spider命令,就可以开始爬取天猫商品信息了。
总结:
- Scrapy是一个强大的网络爬虫框架,可以方便地实现网页内容的爬取。
- XPath是一种在XML文档中定位和选择节点的语言,可以用于在爬虫中定位和提取所需的信息。
- 在爬取天猫商品信息时,可以使用Scrapy和XPath来定位和提取商品名称、价格和链接等信息。
