用scrapy爬取当当网
时间: 2024-06-08 13:11:38 浏览: 93
好的,我可以给你提供一个简单的Scrapy爬取当当网的示例代码。
首先,需要在终端或命令行中安装Scrapy:`pip install scrapy`
然后,可以创建一个新的Scrapy项目:`scrapy startproject dangdang`
在项目的根目录下,打开`settings.py`文件,并添加如下内容:
```
ROBOTSTXT_OBEY = False
DOWNLOAD_DELAY = 2
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
```
这里的作用是告诉Scrapy不要遵守Robots协议,设置下载延迟为2秒,以及设置用户代理。
接下来,在项目的根目录下,创建一个新的Spider:`scrapy genspider dangdang_spider dangdang.com`
打开`dangdang_spider.py`文件,并添加如下内容:
```
import scrapy
class DangdangSpider(scrapy.Spider):
name = "dangdang"
allowed_domains = ["dangdang.com"]
start_urls = ["http://category.dangdang.com/cp01.00.00.00.00.00.html"]
def parse(self, response):
for sel in response.xpath('//ul[@class="bigimg"]/li'):
item = {}
item['title'] = sel.xpath('a/@title').extract()[0]
item['link'] = sel.xpath('a/@href').extract()[0]
item['price'] = sel.xpath('p[@class="price"]/span[@class="search_now_price"]/text()').extract()[0]
yield item
```
这里的作用是定义一个Spider,设置起始url为当当网首页,解析响应并提取商品的标题、链接和价格信息。
最后,在终端或命令行中执行如下命令即可启动爬虫并将结果保存到一个JSON文件中:`scrapy crawl dangdang -o dangdang.json`
这是一个简单的示例代码,你可以根据自己的需要进行更改和扩展。
阅读全文