写个python代码爬取指定网页:http://books.toscrape.com/ 所有的书名和价格信息 要求:一共1000条数据全部爬取下来。优先以字典形式存储:{‘书名’: ’价格’}
时间: 2024-10-15 22:18:23 浏览: 44
为了爬取指定网页上的书籍标题和价格信息,我们可以使用Python的BeautifulSoup库来解析HTML内容,并结合requests库发送HTTP请求。这里是一个简单的示例代码,不过请注意,实际爬取大量数据时需要遵守网站的robots.txt规则,并考虑反爬虫策略。
```python
import requests
from bs4 import BeautifulSoup
# 网页URL
url = "http://books.toscrape.com/"
def get_book_data(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 查找书籍列表元素
book_list = soup.find('div', {'class': 'col-sm-9'})
books = []
for book in book_list.find_all('article', {'class': 'product_pod'}):
title = book.h3.a.text
price = book.select_one('.price_color').text.strip('$') # 获取价格并去除货币符号
# 如果已经获取了1000本书的信息就停止
if len(books) >= 1000:
break
# 存储数据为字典
books.append({'书名': title, '价格': price})
return books
book_data = get_book_data(url)
```
运行这段代码后,`book_data`将是一个包含前1000本书名和价格的字典列表。注意,由于网页结构可能会有变动,这个例子可能在未来某个时间点失效。如果网站结构发生变化,你需要更新选择器来匹配新的HTML元素。
阅读全文