Spider--实战--bs静态网页爬取TOP250电影
import requests
from bs4 import BeautifulSoup
def gettop250():
headers={
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36',
'Host':'movie.douban.com'
}
move_list=[]
url='https://movie.douban.com/top250?start='
for i in range(10):
r=requests.get(url+str(i*25)+"&filter=",headers=headers,timeout=10) # 不使用headers参数时请求不到结果。
soup=BeautifulSoup(r.text,'lxml') # 可把 r.text换成 r.content
#div_list=soup.find_all('div',class_='hd') #或:
div_list=soup.find('div',class_='article').find_all('div',class_='info')
for move in div_list:
move_list.append(move.a.span.text.strip())
return move_list
print(gettop250())
import requests
from bs4 import BeautifulSoup
def get_movies():
headers={
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36',
'Host':'movie.douban.com'
}
movie_list=[]
for i in range(0,10):
link='https://movie.douban.com/top250?start='+str(i*25)
r=requests.get(link,headers=headers,timeout=10)
# print(str(i+1),'页响应状态码:',r.status_code)
soup=BeautifulSoup(r.text,'html.parser')
div_list=soup.find_all('div',class_='hd')
for each in div_list:
movie=each.a.span.text.strip() # 相关定位问题参见https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/#id20
movie_list.append(movie)
return movie_list
movies=get_movies()
print(movies)
# 也可以使用 selenium来解析静态网页:
import requests
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
def gettop250():
move_list=[]
url='https://movie.douban.com/top250?start='
# 设置 headers
user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36',
dcap = dict(DesiredCapabilities.FIREFOX)
dcap["phantomjs.page.settings.userAgent"] = user_agent
options = webdriver.FirefoxOptions()
# 设置无界面
options.add_argument('--headless')
driver=webdriver.Firefox(executable_path=r"C:\Users\12078\Desktop\geckodriver-v0.25.0-win64\geckodriver.exe",options=options)
for i in range(10):
driver.get(url+str(i*25)+"&filter=")
movelist=driver.find_elements_by_class_name('hd')
for move in movelist:
move_list.append(move.find_element_by_class_name('title').text.strip()) # 第一个 title(即中文)
return move_list
print(gettop250())
['肖申克的救赎', '霸王别姬', '阿甘正传', '这个杀手不太冷', '美丽人生', '泰坦尼克号', '千与千寻', '辛德勒的名单', '盗梦空间', '忠犬八公的故事', '海上钢琴师', '楚门的世界', '三傻大闹宝莱坞', '机器人总动员', '放牛班的春天', '星际穿越', '大话西游之大圣娶亲', '熔炉', '疯狂动物城', '无间道', '龙猫', '教父', '当幸福来敲门', '怦然心动', '触不可及', '蝙蝠侠:黑暗骑士', '控方证人', '活着', '乱世佳人', '寻梦环游记', '末代皇帝', '摔跤吧!爸爸', '指环王3:王者无敌', '何以为家', '少年派的奇幻漂流', '飞屋环游记', '十二怒汉', '鬼子来了', '天空之城', '素媛', '哈尔的移动城堡', '大话西游之月光宝盒', '天堂电影院', '罗马假日', '闻香识女人', '辩护人', '哈利·波特与魔法石', '我不是药神', '搏击俱乐部', '死亡诗社', '教父2', '指环王2:双塔奇兵', '狮子王', '大闹天宫', '窃听风暴', '指环王1:魔戒再现', '猫鼠游戏', '两杆大烟枪', '美丽心灵', '饮食男女', '钢琴家', '黑客帝国', '飞越疯人院', 'V字仇杀队', '本杰明·巴顿奇事', '看不见的客人', '让子弹飞', '西西里的美丽传说', '小鞋子', '拯救大兵瑞恩', '海豚湾', '情书', '绿皮书', '穿条纹睡衣的男孩', '音乐之声', '海蒂和爷爷', '美国往事', '致命魔术', '低俗小说', '七宗罪', '沉默的羔羊', '蝴蝶效应', '禁闭岛', '春光乍泄', '心灵捕手', '布达佩斯大饭店', '被嫌弃的松子的一生', '阿凡达', '摩登时代', '剪刀手爱德华', '勇敢的心', '天使爱美丽', '喜剧之王', '致命ID', '加勒比海盗', '断背山', '杀人回忆', '狩猎', '哈利·波特与死亡圣器(下)', '请以你的名字呼唤我', '幽灵公主', '阳光灿烂的日子', '小森林 夏秋篇', '入殓师', '重庆森林', '第六感', '7号房的礼物', '消失的爱人', '红辣椒', '小森林 冬春篇', '爱在黎明破晓前', '一一', '侧耳倾听', '唐伯虎点秋香', '玛丽和马克思', '超脱', '倩女幽魂', '蝙蝠侠:黑暗骑士崛起', '告白', '大鱼', '阳光姐妹淘', '甜蜜蜜', '射雕英雄传之东成西就', '萤火之森', '驯龙高手', '无人知晓', '超能陆战队', '幸福终点站', '借东西的小人阿莉埃蒂', '菊次郎的夏天', '爱在日落黄昏时', '恐怖直播', '完美的世界', '神偷奶爸', '怪兽电力公司', '玩具总动员3', '功夫', '人生果实', '血战钢锯岭', '傲慢与偏见', '风之谷', '时空恋旅人', '教父3', '上帝之城', '天书奇谭', '电锯惊魂', '喜宴', '英雄本色', '被解救的姜戈', '谍影重重3', '七武士', '岁月神偷', '哪吒闹海', '我是山姆', '头号玩家', '釜山行', '疯狂原始人', '纵横四海', '三块广告牌', '心迷宫', '达拉斯买家俱乐部', '萤火虫之墓', '哈利·波特与阿兹卡班的囚徒', '真爱至上', '荒蛮故事', '贫民窟的百万富翁', '东邪西毒', '你的名字。', '记忆碎片', '卢旺达饭店', '爆裂鼓手', '花样年华', '黑天鹅', '忠犬八公物语', '黑客帝国3:矩阵革命', '模仿游戏', '一个叫欧维的男人决定去死', '头脑特工队', '哈利·波特与密室', '你看起来好像很好吃', '雨人', '未麻的部屋', '无敌破坏王', '新世界', '冰川时代', '恋恋笔记本', '海街日记', '二十二', '海边的曼彻斯特', '惊魂记', '房间', '虎口脱险', '恐怖游轮', '奇迹男孩', '魔女宅急便', '人工智能', '雨中曲', '疯狂的石头', '小偷家族', '爱在午夜降临前', '绿里奇迹', '罗生门', '终结者2:审判日', '海洋', '初恋这件小事', '魂断蓝桥', '燃情岁月', '可可西里', '2001太空漫游', '穿越时空的少女', '牯岭街少年杀人事件', '城市之光', '完美陌生人', '无耻混蛋', '新龙门客栈', '源代码', '阿飞正传', '青蛇', '色,戒', '香水', '谍影重重2', '遗愿清单', '地球上的星星', '血钻', '战争之王', '谍影重重', '大佛普拉斯', '猜火车', '疯狂的麦克斯4:狂暴之路', '彗星来的那一夜', '步履不停', '朗读者', '浪潮', '小萝莉的猴神大叔', '再次出发之纽约遇见你', '九品芝麻官', '驴得水', '东京物语', '聚焦', '哈利·波特与火焰杯', '追随', '一次别离', '千钧一发', '我爱你', '黑鹰坠落', '波西米亚狂想曲', '网络谜踪', '四个春天', '发条橙', 'E.T. 外星人']
Spider--实战--bs静态网页爬取TOP250电影的更多相关文章
- Spider_实践_beautifulsoup静态网页爬取所有网页链接
# 获取百度网站首页上的所有a标签里的 href属性值: # import requests # from bs4 import BeautifulSoup # # html = requests.g ...
- python实战项目 — 使用bs4 爬取猫眼电影热榜(存入本地txt、以及存储数据库列表)
案例一: 重点: 1. 使用bs4 爬取 2. 数据写入本地 txt from bs4 import BeautifulSoup import requests url = "http:// ...
- Python静态网页爬取:批量获取高清壁纸
前言 在设计爬虫项目的时候,首先要在脑内明确人工浏览页面获得图片时的步骤 一般地,我们去网上批量打开壁纸的时候一般操作如下: 1.打开壁纸网页 2.单击壁纸图(打开指定壁纸的页面) 3.选择分辨率(我 ...
- Python爬虫实战之Requests+正则表达式爬取猫眼电影Top100
import requests from requests.exceptions import RequestException import re import json # from multip ...
- Python开发爬虫之静态网页抓取篇:爬取“豆瓣电影 Top 250”电影数据
所谓静态页面是指纯粹的HTML格式的页面,这样的页面在浏览器中展示的内容都在HTML源码中. 目标:爬取豆瓣电影TOP250的所有电影名称,网址为:https://movie.douban.com/t ...
- scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250
scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250 前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大 ...
- Scrapy中用xpath/css爬取豆瓣电影Top250:解决403HTTP status code is not handled or not allowed
好吧,我又开始折腾豆瓣电影top250了,只是想试试各种方法,看看哪一种的方法效率是最好的,一直进行到这一步才知道 scrapy的强大,尤其是和selector结合之后,速度飞起.... 下面我就采用 ...
- 爬虫实战(二) 用Python爬取网易云歌单
最近,博主喜欢上了听歌,但是又苦于找不到好音乐,于是就打算到网易云的歌单中逛逛 本着 "用技术改变生活" 的想法,于是便想着写一个爬虫爬取网易云的歌单,并按播放量自动进行排序 这篇 ...
- python2.7爬取豆瓣电影top250并写入到TXT,Excel,MySQL数据库
python2.7爬取豆瓣电影top250并分别写入到TXT,Excel,MySQL数据库 1.任务 爬取豆瓣电影top250 以txt文件保存 以Excel文档保存 将数据录入数据库 2.分析 电影 ...
随机推荐
- MySql 关闭 bin 和 log 日志
mysql 的 bin 和 .log 日志文件会非常占用磁盘空间和 IO,修改 mysql 配置文件可以关闭这两种日志的记录. 关闭 bin 日志,将下面三项配置注释掉: #log_bin = mys ...
- rxjs入门3之项目中ajax函数封装
项目中ajax函数封装 ⽹页应⽤主要数据源有两个:⼀个是⽹页中的DOM事件,另⼀个就是通过AJAX获得的服务器资源.我们已经知道fromEvent这个操作符可以根据DOM事件产⽣Observable对 ...
- iptables 和firewalld 区别
在RHEL7里有几种防火墙共存:firewalld.iptables.ebtables,默认是使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables等. fir ...
- Kafka单机安装
一.Kafka简介 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的 分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作 ...
- wine实用经验教程
本篇讲类unix系统下的用以模拟运行Windows程序的wine.会从普通使用者的比较实用的角度去讲.有专为国内用户准备的内容. 本篇面向有Linux经验但对wine不熟悉的人. wine可靠吗?该不 ...
- 谈谈FTP
一.关于FTP 1.FTP是什么? FTP,全称"文件传输协议".属于TCP/IP四层模型中的应用层. 2.TCP/IP五层模型有哪些? 如图所示: 用文字叙述(从高层到底层): ...
- 为啥 Response.Write 后,View就不渲染了?
一:背景 1. 讲故事 前几天群里有一位朋友聊到,为什么我在 Action 中执行一句 Response.Write 之后,后续的 View 就不呈现了,如果脑子中没有画面,那就上测试代码: publ ...
- 010_Java历史及特性
目录 Java历史 C语言 1972年 C++ 1982年 Java 1995年 Applet 图形界面的程序 J2SE Java 2 标准版 桌面 J2ME Java 2 移动版 手机 J2EE J ...
- MFiX-DEM中的串行碰撞搜索
在计算颗粒碰撞的时候,需要进行neighbor颗粒的搜寻,只知道大概是基于网格与颗粒绑定的方式,但是具体的实现方式还是比较模糊.搜寻部分代码如下 (mfix-19.2.2): 可以直接观察到的是,这里 ...
- vue项目中mockjs的使用
mock.js是一个库,源码托管:https://github.com/nuysoft/Mock github上的原话:Mock.js是一个模拟数据生成器,可帮助前端开发和原型与后端进度分开,并减少某 ...