c语言编程笔录

首页 >   > 笔记大全

笔记大全

Python中的爬虫实战 豆瓣图书爬虫

更新时间:2023-09-30

前言

爬虫是当今互联网时代非常重要的一部分,它可以帮助我们获取互联网上的大量信息,并且分析这些信息得出有用的结论。在本文中,我们将讲解如何使用Python编写一个简单的豆瓣图书爬虫来获取图书的信息。

第一部分:获取页面信息

我们需要使用Python中的requests库获取页面的信息,并使用BeautifulSoup库来解析HTML文档。下面是获取页面信息的示例代码:

import requests
from bs4 import BeautifulSoup

url = 'https://book.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') 

第二部分:分析页面结构并提取信息

我们需要观察豆瓣图书排行榜页面的结构,然后使用BeautifulSoup来提取有用的信息。下面是一个示例代码,如何使用BeautifulSoup提取书名和评分信息:

books_info = soup.find_all('div', class_='pl2')  # 所有包含书名和链接的div
for book in books_info:
    book_name = book.find('a').get('title')
    book_url = book.find('a').get('href')

scores_info = soup.find_all('span', class_='rating_nums')  # 所有包含评分的span
for score in scores_info:
    book_score = score.string 

第三部分:存储获取到的信息

在这一部分,我们将获取到的数据存储到本地文件。下面是实现该功能的示例代码:

with open('douban_book.txt', 'w') as f:
    for i in range(len(books_info)):
        f.write('{} {} {}\n'.format(i+1, books_info[i].find('a').get('title'), scores_info[i].string)) 

第四部分:运行爬虫

最后,我们将上面编写的代码整合到一起,并运行爬虫来获得数据。下面是完整的爬虫代码:

import requests
from bs4 import BeautifulSoup

url = 'https://book.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')

books_info = soup.find_all('div', class_='pl2')
scores_info = soup.find_all('span', class_='rating_nums')

with open('douban_book.txt', 'w') as f:
    for i in range(len(books_info)):
        f.write('{} {} {}\n'.format(i+1, books_info[i].find('a').get('title'), scores_info[i].string)) 

总结

本文中我们讲解了如何使用Python编写一个简单的豆瓣图书爬虫,其中包括获取页面信息、分析页面结构并提取信息、存储获取到的信息和运行爬虫。这是一个非常基础的爬虫示例,大家可以根据自己的需求来修改和完善代码。在进行爬虫操作时,请注意遵守相关法律法规。