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电影的更多相关文章

  1. Spider_实践_beautifulsoup静态网页爬取所有网页链接

    # 获取百度网站首页上的所有a标签里的 href属性值: # import requests # from bs4 import BeautifulSoup # # html = requests.g ...

  2. python实战项目 — 使用bs4 爬取猫眼电影热榜(存入本地txt、以及存储数据库列表)

    案例一: 重点: 1. 使用bs4 爬取 2. 数据写入本地 txt from bs4 import BeautifulSoup import requests url = "http:// ...

  3. Python静态网页爬取:批量获取高清壁纸

    前言 在设计爬虫项目的时候,首先要在脑内明确人工浏览页面获得图片时的步骤 一般地,我们去网上批量打开壁纸的时候一般操作如下: 1.打开壁纸网页 2.单击壁纸图(打开指定壁纸的页面) 3.选择分辨率(我 ...

  4. Python爬虫实战之Requests+正则表达式爬取猫眼电影Top100

    import requests from requests.exceptions import RequestException import re import json # from multip ...

  5. Python开发爬虫之静态网页抓取篇:爬取“豆瓣电影 Top 250”电影数据

    所谓静态页面是指纯粹的HTML格式的页面,这样的页面在浏览器中展示的内容都在HTML源码中. 目标:爬取豆瓣电影TOP250的所有电影名称,网址为:https://movie.douban.com/t ...

  6. scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250

    scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250 前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大 ...

  7. Scrapy中用xpath/css爬取豆瓣电影Top250:解决403HTTP status code is not handled or not allowed

    好吧,我又开始折腾豆瓣电影top250了,只是想试试各种方法,看看哪一种的方法效率是最好的,一直进行到这一步才知道 scrapy的强大,尤其是和selector结合之后,速度飞起.... 下面我就采用 ...

  8. 爬虫实战(二) 用Python爬取网易云歌单

    最近,博主喜欢上了听歌,但是又苦于找不到好音乐,于是就打算到网易云的歌单中逛逛 本着 "用技术改变生活" 的想法,于是便想着写一个爬虫爬取网易云的歌单,并按播放量自动进行排序 这篇 ...

  9. python2.7爬取豆瓣电影top250并写入到TXT,Excel,MySQL数据库

    python2.7爬取豆瓣电影top250并分别写入到TXT,Excel,MySQL数据库 1.任务 爬取豆瓣电影top250 以txt文件保存 以Excel文档保存 将数据录入数据库 2.分析 电影 ...

随机推荐

  1. 关于 ECMAScript、JavaScript、ES6、ECMAScript 2015

    ECMAScript 是一种规范,而 JavaScript 是对规范的实现.ECMA 是标准化组织. 最早的 JavaScript 是由 Netscape 公司开发的,并提交给 ECMA 标准化组织, ...

  2. 扫描仪扫描文件处理-A4分辨率

    转换公式:毫米转英寸,英寸乘以DPI(每英寸点数) 1英寸 = 2.54 厘米 = 25.4 毫米 例子(600dpi):mm: 210x297 = px: 4961(210/25.4*600)x70 ...

  3. springboot入门系列(三):SpringBoot教程之RabbitMQ示例

    SpringBoot教程之RabbitMQ示例 SpringBoot框架已经提供了RabbitMQ的使用jar包,开发人员在使用RabbitMQ的时候只需要引用jar包简单的配置一下就可以使用Rabb ...

  4. jacoco-1-java代码测试覆盖率之本地环境初体验

    前言 jacoco是一个开源的覆盖率工具,它针对的开发语言是java,其使用方法很灵活,可以插桩到Ant.Maven中,可以使用其JavaAgent技术监控Java程序等. 那么本次主要使用对java ...

  5. onedrive同步其他任意文件夹

    经过多次尝试,成功同步其他文件夹内容到onedrive,最后那次尝试是成功的,前面是可能犯的错误.注意3点:1. 用管理员身份运行cmd:2. 路径有空格时用双引号括起来:3. /d后面接的第一个路径 ...

  6. vue 用别名取代路径引用

    在项目开发过程中有可能很多包是没有放在npm上的,许多包需要下载到本地引用,这样一来我们只能通过require的方式来引用文件,但是路径的名字就会很长 例如 import Select from '. ...

  7. Jenkins部署持续集成远程机节点的问题

    工作需要把工作电脑作为持续集成的执行机,最近研究Jenkins,在工作电脑上搭了一套环境,期间把原来的JDK删除掉了,导致持续集成的Jenkins节点slave-agent.jnlp打不开.解决方法是 ...

  8. python文件命名时的注意点

    在python中读取Excal文件,需要引用xlrd模块,因此建的这个python文件名为xlrd.py 部分代码如下: import xlrd import os newpath = os.chdi ...

  9. 想买保时捷的运维李先生学Java性能之 垃圾收集算法

    前言 从原来只知道-Xms.-Xmx是设置内存的,到现在稍微理解了一些堆内存等Java虚拟机的一些知识.明白了技术这一个东西还是得要有输入才能实践,原理与实践要相辅相成,后续把JVM的监控好好总结一下 ...

  10. Java学习的第三十七天

    1.例3.1求一元二次方程的根 import java.util.Scanner; public class cjava { public static void main(String[]args) ...