爬虫获取当当网书名为python的前三页的信息(包括"书名", "作者", "出版社", "售价","折扣","出版时间"),并存储在booklistdangdang.csv
时间: 2023-08-22 19:07:39 浏览: 61
好的,以下是代码:
```python
import requests
from bs4 import BeautifulSoup
import csv
url = 'http://search.dangdang.com/?key=python&act=input&page_index={}'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
booklist = []
for i in range(1, 4):
res = requests.get(url.format(i), headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')
items = soup.select('.bigimg > ul > li')
for item in items:
book = {}
book['书名'] = item.select('p.name > a')[0].text.strip()
book['作者'] = item.select('p.search_book_author > span')[0].text.strip()
book['出版社'] = item.select('p.search_book_author > span')[2].text.strip()
book['售价'] = item.select('p.price > span.search_now_price')[0].text.strip()
book['折扣'] = item.select('p.price > span.search_discount')[0].text.strip()
book['出版时间'] = item.select('p.search_book_author')[0].text.strip().split(',')[-1]
booklist.append(book)
# 写入CSV文件
with open('booklistdangdang.csv', 'w', encoding='utf-8', newline='') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=['书名', '作者', '出版社', '售价', '折扣', '出版时间'])
writer.writeheader()
for book in booklist:
writer.writerow(book)
print('数据已保存到booklistdangdang.csv文件中!')
```
这段代码会爬取当当网上关键字为“python”的前三页信息,包括书名、作者、出版社、售价、折扣和出版时间,并将结果存储在名为booklistdangdang.csv的文件中。
代码中,我们首先定义了一个URL模板,用于构建每一页的URL。然后,我们使用requests库获取每一页的HTML代码,并使用BeautifulSoup库解析HTML代码。接着,我们使用CSS选择器来选取每一页中的图书信息,并将其存储在一个字典中。最后,我们将所有图书信息存储在booklist列表中,并使用csv库将其写入CSV文件中。
请注意,为了防止被网站屏蔽,我们在请求头中加入了User-Agent信息,模拟了浏览器的行为。
希望这个代码对您有所帮助!