您现在的位置是:主页 > news > 免费的网站给一个/yandex搜索引擎入口
免费的网站给一个/yandex搜索引擎入口
admin2025/4/22 15:17:27【news】
简介免费的网站给一个,yandex搜索引擎入口,重庆御临建筑公司官网,wordpress3.8下载要求:爬取豆瓣电影 TOP 250(https://movie.douban.com/top250)的电影信息,如:[‘排名’, ‘电影名称’, ‘电影信息’, ‘评分’, ‘评价人数’, ‘推荐语’],并把这些信息保存在csv文件中。 文章目录一、分…
要求:爬取豆瓣电影 TOP 250(https://movie.douban.com/top250)的电影信息,如:[‘排名’, ‘电影名称’, ‘电影信息’, ‘评分’, ‘评价人数’, ‘推荐语’],并把这些信息保存在csv文件中。
文章目录
- 一、分析
- 二、爬取一页具体操作
- 三、完整代码
一、分析
1、爬取的网页为https://movie.douban.com/top250
2、具体的页面:
3、审查元素(每个电影的所有信息都存放在item中)
4、需要提取的信息(都在item下的元素中):
[‘排名’, ‘电影名称’, ‘电影信息’, ‘评分’, ‘评价人数’, ‘推荐语’]
5、需要用到BeautifulSoup库,进行元素的定位于提取
二、爬取一页具体操作
1、导入必要的库与请求头
from bs4 import BeautifulSoup
import requests
import reheaders = { # headers就是一个请求头"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"}
2、请求豆瓣页面
url = 'https://movie.douban.com/top250'
# 获取相应对象
response = requests.get(url, headers=headers)
3、把源码放在bs4里面
# 创建bs4对象
soup = BeautifulSoup(response.text, 'html.parser')
4、解析页面,获取数据
(通过BeautifulSoup定位需要的元素并提取相应的内容,修改为合适的格式)
item_list = soup.find_all('div', attrs={"class": "item"})
for item in item_list:# 获取排行pic = item.find('div', attrs={"class": "pic"}).text # 获取排名# 获取电影名称title = item.find('div', attrs={'class': 'hd'}).find('a').text # 获取电影名称title = title.split('/')name = ''for i in title:i = i.replace('\n', '').replace('\xa0', '')i = i.strip()name += i + '/'# print('名字是:',name[:-1])# 获取导演信息p_list = item.find('div', attrs={"class": "bd"}).findAll('p')daoyan = p_list[0].text.replace('\n', '').replace('\xa0', '').strip()daoyan = re.sub(' {5,}', '', daoyan)# 获取评分和评价人数star = item.find('div', attrs={"class": "star"}).text.split() # 列表返回:1、分数2、评价人数# 获取推荐语quote = item.find('p', attrs={'class': 'quote'})if quote:quote = quote.text.strip()
5、输出并查看内容
print(pic, name[:-1], daoyan, star[0], star[1], quote)
结果:
需要的信息都已经提取出来了
三、完整代码
1、数据只有前25条,需要实现翻页
第二页:https://movie.douban.com/top250?start=25&filter=
第三页:https://movie.douban.com/top250?start=50&filter=
由此可见第一页可为https://movie.douban.com/top250?start=0&filter=
2、把提取的信息存在csv文档中
完整代码:
from bs4 import BeautifulSoup
import requests
import re
import csv
import timefile = open('豆瓣250.csv','w',encoding='utf-8',newline='')
csv_file = csv.writer(file)
csv_file.writerow(['排名','电影名称','电影信息','评分','评价人数','推荐语'])url1='https://movie.douban.com/top250?start={}&filter='
for pg in range(10):time.sleep(1)url=url1.format(pg*25)print('正在爬取第{}页,url是:{}'.format(pg+1,url))headers = { # headers就是一个请求头"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"}response = requests.get(url, headers=headers)soup = BeautifulSoup(response.text, 'html.parser')item_list = soup.find_all('div',attrs={"class": "item"})for item in item_list:# 获取排行pic = item.find('div',attrs={"class": "pic"}).text # 获取排名# 获取电影名称title = item.find('div', attrs={'class': 'hd'}).find('a').text # 获取电影名称title = title.split('/')name = ''for i in title:i = i.replace('\n','').replace('\xa0','')i = i.strip()name += i +'/'# print('名字是:',name[:-1])# 获取导演信息p_list=item.find('div',attrs={"class": "bd"}).findAll('p')daoyan = p_list[0].text.replace('\n','').replace('\xa0','').strip()daoyan = re.sub(' {5,}','',daoyan)# 获取评分和评价人数star = item.find('div',attrs={"class": "star"}).text.split() # 列表返回:1、分数2、评价人数# 获取推荐语quote = item.find('p',attrs={'class': 'quote'})if quote:quote = quote.text.strip()# ['排名', '电影名称', '电影信息', '评分', '评价人数', '推荐语']csv_file.writerow([pic,name[:-1],daoyan,star[0],star[1],quote])
注:本代码只可用于学习。