电影排行榜(requests + bs4 scrapy)
一、requests、bs4
注意:pycharm-终端输入-pip install bs4下载安装包并导入模块
import requests, time, csv
from bs4 import BeautifulSoupheader = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64)\AppleWebKit/537.36(KHTML, like Gecko)Chrome/77.0.3865.120 \Safari/537.36 Core/1.77.119.400 QQBrowser/10.9.4817.400'}urls = ['https://movie.douban.com/top250?start={}&filter='.format(i * 25) for i in range(10)]movie_directory = []for url in urls:res = requests.get(url, headers=header)soup = BeautifulSoup(res.text, 'html.parser')item = soup.find_all('div', class_='hd')for i in item:tag = i.find('a')name = tag.find(class_="title").textlink = tag['href']print(name, link)movie_directory.append([name, link])time.sleep(1.5)print('数据爬取完成')with open('豆瓣电影TOP250.csv', 'w', newline='', encoding='utf-8') as wb:csv_writer = csv.writer(wb)csv_writer.writerow(['影名', '网址'])for i in movie_directory:csv_writer.writerow(i)
print('数据写入完成')
二、scrapy
注意:pycharm-终端输入-pip install scrapy下载安装包并导入模块
import scrapy
scrapy startproject + 爬虫项目名称 创建项目。
scrapy startproject scrapypython
cd 爬虫项目名称 scrapy genspider + 爬虫文件名 + 爬取数据域名 创建爬虫文件
cd scrapypython
scrapy genspide douban movie.douban.com
scrapy crawl + 爬虫文件名 执行爬取操作
scrapy crawl douban
1.douban.py(爬虫文件)
import scrapy
from scrapypython.items import MovieSTART = 0
LIST_URL = ['https://movie.douban.com/top250?start={}&filter='.format(num*25) for num in range(10)]class DoubanSpider(scrapy.Spider):name = 'douban'allowed_domains = ['movie.douban.com']start_urls = ['https://movie.douban.com/top250']def parse_movie(self, response):for item in response.css('div.item'):movie = Movie()movie['rank'] = item.css('div.pic em::text').get()movie['name'] = item.css('div.info>div.hd>a span.title::text').get()movie['link'] = item.css('div.hd>a::attr(href)').get()movie['score'] = item.css('div.star>span.rating_num::text').get()movie['quote'] = item.css('div.bd>p.quote span.inq::text').get()yield moviedef parse(self, response):for url in LIST_URL:yield scrapy.Request(url, self.parse_movie)
2.items(爬取目标)
import scrapyclass Movie(scrapy.Item):rank = scrapy.Field() #排名name = scrapy.Field() #影名 link = scrapy.Field() #链接score = scrapy.Field() #评分quote = scrapy.Field() #简介
3.settings(爬取设置)
BOT_NAME = 'scrapypython' SPIDER_MODULES = ['scrapypython.spiders']
NEWSPIDER_MODULE = 'scrapypython.spiders'ROBOTSTXT_OBEY = TrueFEED_URI = 'douban.csv'
FEED_FORMAT = 'csv'
FEED_EXPORT_ENCODING = 'utf-8'
DEFAULT_REQUEST_HEADERS = {'authority': 'movie.douban.com','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) \
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 \
Safari/537.36 Core/1.94.169.400 QQBrowser/11.0.5130.400'
}
AUTOTHROTTLE_ENABLED = True
AUTOTHROTTLE_TARGET_CONCURRENCY = 10
电影排行榜(requests + bs4 scrapy)相关推荐
- python大规模获取豆瓣影评_python爬取豆瓣电影排行榜(requests)
''' 爬取豆瓣电影排行榜 设计思路: 1.先获取电影类型的名字以及特有的编号 2.将编号向ajax发送get请求获取想要的数据 3.将数据存放进excel表格中 ''' 环境部署: 软件安装: 模块 ...
- 2019-01-18-Python爬取猫眼电影排行榜
title: Python爬取猫眼电影排行榜 date: 2019-01-18 20:44:16 tags: python lxml requests json categories: python ...
- python用bs4爬取豆瓣电影排行榜 Top 250的电影信息和电影图片,分别保存到csv文件和文件夹中
python用bs4爬取豆瓣电影排行榜 Top 250的电影信息和图片,分别保存到csv文件和文件夹中. 爬取的数据包括每个电影的电影名 , 导演 ,演员 ,评分,推荐语,年份,国家,类型. py如果 ...
- python爬虫实例教程之豆瓣电影排行榜--python爬虫requests库
我们通过requests库进行了简单的网页采集和百度翻译的操作,这一节课我们继续进行案例的讲解–python爬虫实例教程之豆瓣电影排行榜,这次的案例与上节课案例相似,同样会涉及到JSON模块,异步加载 ...
- python爬虫 requests+bs4爬取猫眼电影 傻瓜版教程
python爬虫 requests+bs4爬取猫眼电影 傻瓜版教程 前言 一丶整体思路 二丶遇到的问题 三丶分析URL 四丶解析页面 五丶写入文件 六丶完整代码 七丶最后 前言 大家好我是墨绿 头顶总 ...
- Python语言实现用requests和正则表达式方法爬取猫眼电影排行榜前100部电影
#爬取猫眼电影排名前100的电影 import requests #电脑向服务器发送的请求库 from requests.exceptions import RequestException impo ...
- 爬虫实践---电影排行榜和图片批量下载
1.目标网址:http://dianying.2345.com/top/ 需要找到的信息:电影的名字,主演,简介,和标题图片 2.查看页面结构: 容易看到,需要的主题部分,都被包裹在'<ul&g ...
- 爬取豆瓣电影排行榜,并制作柱状图与3d柱状图
**爬取豆瓣电影排行榜,并简单制作柱状图 一.首先,我们需要获取页面的信息,下图是从排行第25到50的电影,由此可见start可以想象为偏移量,我们把start的值换为0,得到了第一到25排名的电影, ...
- Python爬虫爬取韩国电影售票评分网站电影排行榜Top250
Python爬虫 韩国电影售票评分网站 电影排行榜Top250 步骤 1.基本的爬取思路是先爬取排行榜中每个电影的详情页URL 2.通过拼接URL获取详情页的具体地址 3.通过分析电影详情页获取电影数 ...
最新文章
- 字符串charAt()
- 架设httpd服务器
- session 存放对象变量,及遇到的奇怪现象
- java对xml文件做增删改查------摘录
- eclipse代码补全
- linux编译libevent
- 微信平台第三方服务器,浅谈微信第三方服务平台的发展前景
- The serializable class XXX does not declare a static final serialVersionUID field of type long的警告...
- 在docker for win中使用portainer管理容器
- 《高等运筹学》复习题手写解答 Advanced Operations Research: Final Exam:Review Exercises
- [Slackware13.0学习笔记]上网问题
- 全同高校名称MySQL数据表
- 关于 Could not find artifact ...:pom:1.0-SNAPSHOT 的问题!
- 腾讯成立技术委员会,地位高于 6 大事业群
- TFLite Interpreter
- WORD两个表格合并为一个表格(删除两个表格之间多余的空格)
- 记录:如何解决Ubuntu20.04无法联网问题【亲测有效】
- killall杀死nginx顽固进程
- Sublime Text3插件安装(经典)
- git 创建本地分支及远程分支并且关联分支
热门文章
- uniapp调用百度地图导航
- VUE echarts绘制省级/市级地图自动轮循tooltip
- 科林明伦杯 - B Time
- python数据库实体_python---使用get方法访问‘数据库’实体
- [刷题]剑指offer C++语言刷题-多解法尝试
- 无法为表空间 某某XX 中的段创建 INITIAL区
- Linova and Kingdom
- 常用html5阅览器,最好的网页浏览器排行,速度最快的四大浏览器分享
- 移动端滑动事件---实战笔记
- 【VC++游戏开发#六】2D篇 —— 粒子系统(一):浪漫唯美的场景之雪花飞舞