用scrapy框架的xpath方法去获取当当网(http://category.dangdang.com/cp01.01.02.00.00.00.html)图书的图片、价格和书名。
时间: 2024-06-08 14:12:09 浏览: 8
可以使用Scrapy框架中的XPath选择器来提取当当网图书的图片、价格和书名。具体代码如下:
```python
import scrapy
class DangDangSpider(scrapy.Spider):
name = "dangdang"
start_urls = [
'http://category.dangdang.com/cp01.01.02.00.00.00.html',
]
def parse(self, response):
for book in response.xpath('//ul[@class="bigimg"]/li'):
yield {
'title': book.xpath('p[@class="name"]/a/@title').get(),
'image': book.xpath('a[@class="pic"]/img/@src').get(),
'price': book.xpath('p[@class="price"]/span[@class="search_now_price"]/text()').get(),
}
```
解释一下代码:
首先,我们定义了一个名为 `DangDangSpider` 的爬虫,并指定了起始 URL。在 `parse` 方法中,我们使用了XPath选择器来提取每本书的标题、图片和价格,并将其封装成一个字典并使用 `yield` 返回。其中,`//ul[@class="bigimg"]/li` 表示选取所有 `class` 为 `bigimg` 的 `ul` 标签下的 `li` 标签,即每个图书的容器。接下来,我们使用 `book.xpath` 方法对每个图书容器进行选择,`p[@class="name"]/a/@title` 表示选取 `class` 为 `name` 的 `p` 标签下的 `a` 标签的 `title` 属性,即书名;`a[@class="pic"]/img/@src` 表示选取 `class` 为 `pic` 的 `a` 标签下的 `img` 标签的 `src` 属性,即书的图片链接;`p[@class="price"]/span[@class="search_now_price"]/text()` 表示选取 `class` 为 `price` 的 `p` 标签下的 `class` 为 `search_now_price` 的 `span` 标签内的文本,即价格。
最后,我们可以在命令行中输入以下命令来运行爬虫并将结果保存到文件中:
```
scrapy runspider dangdang_spider.py -o books.csv
```
注意,这里将结果保存到了 `books.csv` 文件中。您可以根据实际情况更改文件名或文件格式。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)