2020.12.3爬取猫眼电影的心得

一、遇见的问题1

首先在使用正则表达式的时候,使用并不是很熟练,根据某些大神的操作去模仿他的书写规范,编译之后出现获取不到数据的现象。
根据模仿来的书写规范之后,一直也编译不出来(太菜了0.0),最后使用的方法就是简单粗暴,不使用“+”,直接在后面使用正则表达式(很长)
后面还有很多0.0
虽然很low,但是却解决了获取不到数据的问题。

二、遇见的问题2

爬取的是猫眼的TOP100,网上代码很多,确实大部分的代码都是可以运行的,但是我在代码编译的时候,出现爬取到第三页的时候,便获取不到数据。
在这过程中,我以为是自己的代码出现了问题,便通过不断的注释函数来一一确认到底是那个函数出现了问题,在遍历完所有的函数时,也找不出问题所在,其实仔细深想的话,既然前两页可以编译出来,说明本身写的代码并没有什么大的问题,那么这个时候我们第一反应应该就是自己遇到反爬了。
我才用了异常返回,所以代码并没有返回出错,但是我获取的是TOP100,应该是有100条数据的。自己还加了时间延迟,还是编译不出来0.0。

三、反爬有哪些?

反爬主要有:IP封锁,用户行为,登录验证,动态验证。
最为常见的便是前两种,后面有过了解,但是不是很懂,只知道如果遇到了后两种可以使用selenium这个这个模块去实现模拟浏览器进行爬取数据,但是说实话这种操作是处理数据的时间是真的久。

四、解决方法

自己把问题锁定在前两个反爬方法中,以为最为常见,也是最好解决的。
后来我发现通过点击刷新的按钮可以使得页面进行重新加载,重新不断地获取数据,这。。。。。。便说明自己的IP没有被封啊,那基本遇见的就是基于用户行为的反爬了,这种反爬的原理就是‘ua’‘cookie’‘headers’没有做好,说简单点就是你写的爬虫做的不行,伪装能力太差了,人家服务器一眼就看出你这个请求是爬虫,不给你爬数据。
第一步,将‘ua’数据加入请求头中,大部分只要这个就可以了,网上的教学视频也都差不多这样。。。。我进行数据获取,发现加载还是老样子,还是不够完善。
第二部,那就加入‘cookie’呗,cookie信息获取在
点击network 然后再点击doc,才能看到cookie.
第三部,填进去呗。
编译成功。
很Low很Low
很Low
很Low
很Low
很Low
很Low
我知道,但是这个问题我搞了两个小时,主要在写爬虫很少遇见这种要写这么详细的请求头,一时间不知道咋办。
加进去之后,编译也是真的快。
我提取了图片信息,文本信息就不看了(密密麻麻的)

import requests
from requests.exceptions import RequestException
import re
import timedef parse_page(url):try:headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36','Cookie': '__mta=141849101.1606903876685.1606990256975.1606990262705.95; uuid_n_v=v1; uuid=B6421C20348611EB8F98359D9A7F3F185A957CFC84E04D869D70844105119167; _lxsdk_cuid=17622ef4b6387-0604d132e7b4ad-5a472316-15f900-17622ef4b64c8; _lxsdk=B6421C20348611EB8F98359D9A7F3F185A957CFC84E04D869D70844105119167; _csrf=8d01e09e067db23db760982cdcfcd577bf0ea7e9bf6bbde4ae5bf7dab66319d0; _lx_utm=utm_source%3DBaidu%26utm_medium%3Dorganic; Hm_lvt_703e94591e87be68cc8da0da7cbd0be2=1606903876,1606904946,1606971784,1606989764; __mta=141849101.1606903876685.1606990256975.1606990261806.95; Hm_lpvt_703e94591e87be68cc8da0da7cbd0be2=1606990263; _lxsdk_s=17627b4c37c-039-7bb-99e%7C%7C133'}response = requests.get(url,headers=headers)if response.status_code == 200:return response.textelse:return Noneexcept RequestException:return None
def detail_parsepage(html):liu =[]content = re.compile(' <img data-src="(.*?)@160w_220h_1e_1c" alt="(.*?)" class="board-img" />.*?<p class="star">(.*?)</p>.*?<p class="releasetime">上映时间:(.*?)</p>.*?<p class="score"><i class="integer">(.*?).</i><i class="fraction">',re.S)items = re.findall(content,html)for item in items:yu =  {'img':item[0],'title':item[1],'actors':item[2].strip(),'time':item[3],'score':item[4]}liu.append(yu)return liudef write_to_file(content):# with open(r'C:/Users/xiaoyu/Desktop/test/'+ 'result.txt', 'a', encoding='utf-8') as f:#     f.write(json.dumps(content) + '\n')response = requests.get(content['img']).contentf = open ('C:/Users/xiaoyu/Desktop/test/' + content['title'] + '.jpg','wb')f.write(response)def main(offset):url = 'http://maoyan.com/board/4?offset=' + str(offset)print(url)# time.sleep(3)html = parse_page(url)# print(html)print(detail_parsepage(html))for item in detail_parsepage(html):print(item)write_to_file(item)if __name__ == '__main__':for i in range(10):main(offset=i * 10)

主要是想告诉大家,刚开始遇到的事情和问题可能回过头来看,觉得自己好low0.0,但是也算是自己的一些成长吧!!!

爬取猫眼电影top100相关推荐

  1. 猫眼html源码,50 行代码教你爬取猫眼电影 TOP100 榜所有信息

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 今天,手把手教你入门 Python 爬虫,爬取猫眼电影 TOP100 榜信息. 作者 | 丁 ...

  2. 50 行代码教你爬取猫眼电影 TOP100 榜所有信息

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 今天,手把手教你入门 Python 爬虫,爬取猫眼电影 TOP100 榜信息. 作者 | 丁 ...

  3. 爬虫,爬取猫眼电影Top100的电影名与评分

    ** 爬虫,爬取猫眼电影Top100的电影名与评分 ** import requests import threading import reclass maoyan_top500(threading ...

  4. python爬虫猫眼电影票房_python爬取猫眼电影top100排行榜

    爬取猫眼电影TOP100(http://maoyan.com/board/4?offset=90) 1). 爬取内容: 电影名称,主演, 上映时间,图片url地址保存到mariadb数据库中; 2). ...

  5. 爬虫从头学之Requests+正则表达式爬取猫眼电影top100

    爬取思路 当我们想要爬取一个页面的时候,我们要保证思路清晰,爬虫的思路分四个步骤,发起请求,获取响应内容,解析内容,存储内容.根据这四个内容我们的思路就很清晰.以下为具体步骤 使用requests库爬 ...

  6. (爬取猫眼电影TOP100的电影信息(含图片、评分等))

    爬取猫眼电影TOP100的电影信息(含图片.评分等) 让我们直接进入正题 1.导入需要的库 2.获取页面 3.分析页面 4.保存文件 全部代码 让我们直接进入正题 对猫眼电影的网站进行分析 其链接为: ...

  7. 爬取猫眼电影TOP100榜单

    爬取猫眼电影Top100榜单 分析网页 内容提取 前提:会基础的python3以及requests库,正则等. 分析网页 top100榜单网址为https://maoyan.com/board/4,通 ...

  8. python爬取猫眼_python正则表达式爬取猫眼电影top100

    用正则表达式爬取猫眼电影top100,具体内容如下 #!/usr/bin/python # -*- coding: utf-8 -*- import json # 快速导入此模块:鼠标先点到要导入的函 ...

  9. python爬虫入门练习:BeautifulSoup爬取猫眼电影TOP100排行榜,pandas保存本地excel文件

    传送门:[python爬虫入门练习]正则表达式爬取猫眼电影TOP100排行榜,openpyxl保存本地excel文件 对于上文使用的正则表达式匹配网页内容,的确是有些许麻烦,替换出现任何的差错都会导致 ...

  10. 利用正则表达式爬取猫眼电影TOP100信息

    本文利用requests库和正则表达式爬取了猫眼电影TOP100电影信息,并将电影封面和标题.主演等文字信息保存在了本地.本文完整代码链接:https://github.com/iapcoder/Ma ...

最新文章

  1. python 合并 循环list_阿里巴巴鼎力推荐,Python入门至精通,24招加速你的Python
  2. python mapreduce函数_Map-reduce在Python高阶函数中的应用,python,用法,之,mapreduce
  3. 【Python】用于在 Python 中处理 PDF 文件的 PyPDF2 库
  4. 使用jieba 提取 关键词
  5. 性能测试报告模板_性能测试规范之测试报告
  6. Android之Activity框架
  7. PHP--去除字符串首尾空格
  8. 计算机打开管理工具空白,大师解决win10系统打开设备管理器却显示空白的办法...
  9. ajax中的application/x-www-form-urlencoded中的使用
  10. 一起学习MVC(4)-entity SQL语句
  11. ElementUI:修改tabs标签鼠标悬浮和选中标签
  12. OpenGL ES总结(四)OpenGL 渲染视频画面
  13. 计算机中显卡在什么地方 看,电脑显卡在哪个位置
  14. 太原理工软件学院c语言2020,庆祝软件学院成立十周年创意设计之logo投稿入围展示...
  15. 拳头产品|海泰虎讯,新一代安全即时通讯系统
  16. 线性代数之——对称矩阵及正定性
  17. 基于Java毕业设计影院网上售票系统源码+系统+mysql+lw文档+部署软件
  18. 祝贺!中国战队EDG夺冠
  19. 计算机会显示机械硬盘丢失,Win10机械硬盘突然消失,无法检测到解决方案
  20. 黄健翔,请你像个男人一样去向全国的球迷道歉!(摘自网络)

热门文章

  1. Matlab外部程序接口
  2. txt转shp,省标格式txt格式转shp批量转换
  3. Discuz!论坛实现帖子回复可见内容功能
  4. 向量欧氏距离 点积 余弦相似度 余弦距离
  5. Android 设置APP启动图标
  6. Linux中国微信,「Linux 中国」2018 微信文章排行榜 | Linux 中国
  7. Chromatix 7 使用<2>
  8. cad转dxf格式文件太大,怎样操作将多张CAD图纸文件转换成高版本的DXF格式?
  9. [ESP32][esp-idf] AP+STA实现无线桥接 中转wifi信号 路由器
  10. Vanilla相关术语