生成一个爬取当当网计算机书籍数据的代码
时间: 2023-09-19 14:05:50 浏览: 129
好的,以下是一个爬取当当网计算机书籍数据的 Python 代码示例:
```python
import requests
from bs4 import BeautifulSoup
url = "http://search.dangdang.com/?key=计算机&act=input&page_index=1"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
book_list = soup.find_all(class_="pic")
for book in book_list:
title = book.find("a")["title"]
link = book.find("a")["href"]
author = book.find(class_="search_book_author").text.strip()
price = book.find(class_="price_n").text.strip()
print(title, link, author, price)
```
这个代码会爬取当当网上搜索关键词为“计算机”的书籍数据,并输出每本书的标题、链接、作者和价格。你可以根据自己的需求修改搜索关键词和其他参数。注意:爬取网站数据时请遵守相关法律法规和网站的爬虫协议。
相关问题
生成一个爬取当当网计算机书籍的代码
我可以提供一个基本框架,但请注意遵守当当网的使用条款和法律法规。
```python
import requests
from bs4 import BeautifulSoup
url = "http://category.dangdang.com/cp01.54.00.00.00.00.html" # 替换为计算机类别的URL
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"}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.content, "html.parser")
books = soup.find_all("li", class_="list_num")
for book in books:
book_name = book.find("a", class_="pic").get("title")
book_url = book.find("a", class_="pic").get("href")
book_price = book.find("p", class_="price").text
print(book_name, book_url, book_price)
```
请注意,这只是一个基本的示例代码,您需要根据实际情况进行修改和扩展。同时,请确保您的爬虫行为是合法的,不违反当当网的使用条款和法律法规。
当当网图书数据可视化爬取毕业设计代码
好的,以下是一个使用 Python 爬取当当网图书信息并进行数据可视化的毕业设计代码,供您参考:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
import matplotlib.pyplot as plt
from wordcloud import WordCloud
# 爬取当当网图书信息
url = "http://search.dangdang.com/?key=%BB%FA%D0%B5&act=input"
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"}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")
book_list = soup.select(".bigimg li")
data = []
for book in book_list:
name = book.select(".name")[0].text.strip()
author = book.select(".search_book_author")[0].text.strip()
price = book.select(".search_now_price")[0].text.strip()
publisher = book.select(".search_book_author")[1].text.strip()
data.append([name, author, price, publisher])
# 将爬取到的数据存储到 DataFrame 中
df = pd.DataFrame(data, columns=["书名", "作者", "价格", "出版社"])
# 绘制价格分布直方图
plt.hist(df["价格"].astype(float), bins=20, edgecolor="black")
plt.xlabel("价格")
plt.ylabel("频数")
plt.title("当当网图书价格分布直方图")
plt.show()
# 绘制按出版社分组的平均价格条形图
grouped = df[["价格", "出版社"]].groupby("出版社").mean()
grouped.plot(kind="bar", legend=False)
plt.ylabel("平均价格")
plt.title("当当网图书按出版社分组的平均价格")
plt.show()
# 绘制图书名称词云图
name_str = " ".join(df["书名"])
wordcloud = WordCloud(width=800, height=400, background_color="white").generate(name_str)
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.title("当当网图书名称词云图")
plt.show()
```
这段代码与之前给出的示例代码类似,不过增加了一个使用 wordcloud 库绘制图书名称词云图的操作。首先使用 Pandas 将爬取到的数据存储到 DataFrame 中,然后使用 Matplotlib 绘制价格分布直方图和按出版社分组的平均价格条形图。最后使用 wordcloud 库绘制图书名称词云图,将所有图书名称拼接成一个字符串,然后使用 WordCloud() 函数生成词云图像,imshow() 函数用于显示图像,axis() 函数用于隐藏坐标轴。
阅读全文