用python爬取豆瓣读书top250,把这些爬取到的数据,使用mysql语句存取到本地数据库
时间: 2024-06-04 14:10:23 浏览: 21
好的,我可以回答这个问题。您可以使用Python中的BeautifulSoup库和requests库来爬取豆瓣读书top250。首先,您需要使用requests库来向豆瓣网站发送HTTP请求,并获取HTML响应。然后,您可以使用BeautifulSoup库来从HTML响应中提取所需的数据,例如书名、作者、评分等。
在这个过程中,您可以使用Python中的mysql-connector-python库来连接本地MySQL数据库,并使用SQL语句将爬取到的数据存储到数据库中。具体来说,您可以使用以下语句创建一个新表,以存储爬取到的数据:
CREATE TABLE books (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
author VARCHAR(255),
rating FLOAT
);
然后,您可以使用INSERT语句将每本书的数据插入到该表中。
注意,这种操作可能会触及到豆瓣网站的服务条款,如果豆瓣网站禁止爬虫,您不能继续进行这种操作。
相关问题
python爬取豆瓣读书Top250
好的,以下是一个爬取豆瓣读书Top250的Python代码示例:
```
import requests
from bs4 import BeautifulSoup
url = 'https://book.douban.com/top250?start='
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'}
book_list = []
for i in range(0, 10):
start_num = str(i * 25)
req = requests.get(url + start_num, headers=headers)
soup = BeautifulSoup(req.text, 'html.parser')
books = soup.find_all('div', {'class': 'pl2'})
for book in books:
book_name = book.find('a')['title']
book_url = book.find('a')['href']
book_list.append(book_name)
print(book_list)
```
首先,我们定义了URL和headers。我们将使用requests库来获取网页内容,并使用BeautifulSoup库来解析HTML。然后我们定义了一个空列表,用于存储书籍名称。
接下来,我们循环遍历Top250的所有页面,每页显示25本书。我们使用requests库来获取页面内容,并使用BeautifulSoup库将其解析为HTML。
我们找到了每个书籍的div列表项,并从中提取书名和URL。我们将书名添加到我们之前定义的空列表中。
最后,我们输出整个书籍列表。
希望这可以帮助到你。
python爬取豆瓣Top250电影保存到mysql数据库代码
以下是Python爬取豆瓣Top250电影并保存到MySQL数据库的代码:
```
import requests
from bs4 import BeautifulSoup
import pymysql
# 连接MySQL数据库
db = pymysql.connect(host='localhost', port=3306, user='root',
password='your_password', db='your_database')
cursor = db.cursor()
# 创建表格
cursor.execute('CREATE TABLE IF NOT EXISTS top250('
'id INT PRIMARY KEY AUTO_INCREMENT,'
'title VARCHAR(255) NOT NULL,'
'score FLOAT(3,1) NOT NULL,'
'director VARCHAR(255) NOT NULL,'
'actor VARCHAR(255) NOT NULL,'
'year VARCHAR(4) NOT NULL)')
# 爬取Top250电影
url = 'https://movie.douban.com/top250'
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')
for item in soup.find_all('div', class_='info'):
# 解析出电影名、评分、导演、演员、年份信息
title = item.find('span', class_='title').string
score = item.find('span', class_='rating_num').string
director = item.find('p').text.split('\n')[1].strip().strip('导演: ')
actor = item.find('p').text.split('\n')[2].strip().strip('主演: ')
year = item.find('p',class_='').text.split('\n')[1].strip().split('/')[0]
# 数据库写入
cursor.execute("INSERT INTO top250(title, score, director, actor, year) VALUES (%s, %s, %s, %s, %s)", (title, score, director, actor, year))
db.commit()
# 关闭数据库连接
db.close()
```
这段代码可以将豆瓣Top250电影的电影名、评分、导演、演员、年份信息爬取下来,并保存到本地的MySQL数据库中。同时,还包括了创建表格的操作,因此不需要手动在数据库中建立表格。注意替换代码中的“your_password”和“your_database”为你自己的密码和数据库名称。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.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)