[python爬虫]爬取评分方法及Excel读写

环境介绍

为了让两位自认为阅漫无数的同学对自己的动漫观看质量有数据量化的评判,近日基于爬虫实现了对动漫评分的爬取。

###爬虫部分

import urllib
from urllib.parse import quote
import requests
import re
from bs4 import BeautifulSoup

#构造搜索请求,获取往返回的网页内容
#movie_name 电影名称

def find(movie_name):
	# 读取用户输入的电影名,并转换为url编码
	url_head = "https://bangumi.tv/subject_search/"+quote(movie_name.encode('utf-8')) #生成爬虫Url
	# 发送请求拿到HTML内容
	#cat = 2 是番组计划对动漫的分类
	payload = {
   'cat': '2'}
	r = requests.get(url_head, params=payload)
	r.encoding = 'utf-8'
	# 用bs解析HTML内容
	#这里可以获取所有的网页返回的内容
	soup = BeautifulSoup(r.text, 'html.parser')
	return get_score(soup,movie_name) 

#对网页内容进行分析,获取相应数据
def get_score(soup,movie_name):
	#find_all 是寻找所有符合的标签,返回list
	rank_list = soup.find_all(class_ = 'fade')
	name_list = soup.find_all(class_ = 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
爬取数据并导入Excel需要使用Python爬虫和xlwt库来实现。下面是实现的步骤: 1. 导入所需的库和模块: ```python import xlwt import requests import re ``` 2. 创建Excel文件和工作表: ```python book = xlwt.Workbook(encoding="utf-8", style_compression=0) sheet = book.add_sheet('豆瓣电影Top250', cell_overwrite_ok=True) ``` 3. 发起请求获取网页数据: ```python def askURL(url): headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.116 Safari/537.36" } response = requests.get(url, headers=headers) html = response.text return html ``` 4. 使用正则表达式提取数据并写入Excel: ```python # 电影链接 findLink = re.compile(r'<a href="(.*?)">') # 封面图片 findImgSrc = re.compile(r'<img.*src="(.*?)".*>', re.S) # 电影名称 findTitle = re.compile(r'<span class="title">(.*?)</span>') # 评分 findRating = re.compile(r'<span class="rating_num" property="v:average">(.*?)</span>') # 评价人数 findJudge = re.compile(r'<span>(.*?)人评价</span>') # 概况 findInq = re.compile(r'<span class="inq">(.*?)</span>') # 电影详细内容 findBd = re.compile(r'<p class="">(.*?)</p>', re.S) # 获取数据的函数 def getData(baseurl): html = askURL(baseurl) # 提取数据并写入Excel for i in range(len(result)): data = result[i] sheet.write(i + 1, 0, data[0]) sheet.write(i + 1, 1, data[1]) sheet.write(i + 1, 2, data[2]) sheet.write(i + 1, 3, data[3]) sheet.write(i + 1, 4, data[4]) sheet.write(i + 1, 5, data[5]) sheet.write(i + 1, 6, data[6]) book.save('豆瓣电影Top250.xls') ``` 5. 调用函数开始爬取数据并导入Excel: ```python if __name__ == "__main__": baseurl = "https://movie.douban.com/top250?start=" # 爬取多页数据 for i in range(0, 10): url = baseurl + str(i * 25) getData(url) ``` 以上是一个简单的示例,你可以根据自己的需求进行修改和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值