python3爬取豆瓣书籍top250

本博客介绍了一个Python程序,该程序用于从豆瓣网站爬取Top250书籍的相关信息,包括书名、作者、评分等,并展示了如何解析网页内容及抓取具体数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

豆瓣

import re
import ssl
import urllib.request

ssl._create_default_https_context=ssl._create_unverified_context

class Douban:
	def __init__(self):
		self.queque=[]
		self.user_agent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14'
		self.headers={'User_Agent':self.user_agent}
		self.enable=False
		self.pageIndex=0
		self.pageStorage=[]
		self.result=[]

	def getpage(self):
		url='https://book.douban.com/top250?start='+str(self.pageIndex)
		req=urllib.request.Request(url,headers=self.headers)
		with urllib.request.urlopen(req) as response:
			pageCode=response.read().decode('utf-8')
		p=re.compile(r'.*?title=.*?>(.*?)<.*?<p class="pl">(.*?)</p>.*?<span class="rating_nums">(.*?)</span>.*?\((.*?)\).*?<span class="inq">(.*?)</span>',re.S)
		self.result=re.findall(p,pageCode)
		book_list=[]
		for item in self.result:
			#book_list.append([item[0].strip(),item[1].strip(),item[2].strip(),item[3].strip(),item[4].strip()])
			book_list.append([item[0].strip(),item[1].strip(),item[2].strip(),item[3].strip()])
		for item in book_list:
			print(item)
		return pageCode
	def start(self):
		self.enable=True
		while self.pageIndex<10:
			print('{}~{}'.format(self.pageIndex*25,(self.pageIndex+1)*25-1))
			pageCode=self.getpage()
			self.pageIndex+=1



if __name__=='__main__':
	douban_spider=Douban()
	douban_spider.start()





Python爬虫可以用于爬取豆瓣读书Top250书评。具体步骤如下: 1. 导入所需的库,包括requests、beautifulsoup和pandas。 ```python import requests from bs4 import BeautifulSoup import pandas as pd ``` 2. 构造请求头和URL,使用requests库发送请求并获取响应。 ```python headers = { &#39;User-Agent&#39;: &#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3&#39;} url = &#39;https://book.douban.com/top250&#39; response = requests.get(url, headers=headers) ``` 3. 使用beautifulsoup库解析响应内容,获取书籍名称、作者、评分和书评等信息。 ```python soup = BeautifulSoup(response.text, &#39;html.parser&#39;) book_list = soup.find(&#39;div&#39;, {&#39;class&#39;: &#39;article&#39;}).find_all(&#39;table&#39;) data = [] for book in book_list: book_name = book.find(&#39;div&#39;, {&#39;class&#39;: &#39;pl2&#39;}).find(&#39;a&#39;)[&#39;title&#39;] book_author = book.find(&#39;p&#39;, {&#39;class&#39;: &#39;pl&#39;}).get_text() book_rating = book.find(&#39;span&#39;, {&#39;class&#39;: &#39;rating_nums&#39;}).get_text() book_comment = book.find(&#39;span&#39;, {&#39;class&#39;: &#39;inq&#39;}).get_text() data.append([book_name, book_author, book_rating, book_comment]) ``` 4. 将获取到的数据存储到pandas的DataFrame中,并输出到csv文件中。 ```python df = pd.DataFrame(data, columns=[&#39;书名&#39;, &#39;作者&#39;, &#39;评分&#39;, &#39;书评&#39;]) df.to_csv(&#39;douban_book_top250.csv&#39;, index=False, encoding=&#39;utf-8-sig&#39;) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值