接下来的一个月将更新多个网络爬虫的博文,同时也是分享自己在网络爬虫道路上的磕磕绊绊,学习和成长的历程。

今天的网络爬虫是爬取猫眼电影top100,实现分页爬取,然后保存在本地txt文本上。

url : http://maoyan.com/board/4?offset=1,通过分析和试验,发现猫眼电影的url里的offset参数代表着现实每页的第xx-xx排行,比如offset=1,则现实1-10的排行,offset=32,则显示30-39的排行,这就方便了我们实现分页爬取,只需要在url上面动一动手脚即可,正好可以使用urlencode来实现拼接。

具体实现代码如下:

import json
import re
from urllib.parse import urlencodeimport requests
from bs4 import BeautifulSoupdef get_one_page(url):# 设置user-agent为浏览器 防止被反爬虫发现后禁止登陆headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3423.2 Safari/537.36'}# 获取网页 'http://maoyan.com/board/4'r = requests.get(url, headers=headers)# print(r.text)# 网页成功访问则返回页面内容 不成功返回空if r.status_code == 200:return r.textreturn Nonedef parse_one_page(html):soup = BeautifulSoup(html, 'lxml')pages = soup.select('.board-wrapper dd')# index = []# image = []# title = []# actor = []# time = []# score = []mylist = []for page in pages:# 排名for i in page.select_one('i'):if i.string:mylist.append(i.string)# 标题for i in page.select('.name a'):if i['title']:mylist.append(i['title'])# 图片地址# 动态加载 暂时不保存# for i in page.select('board-img'):#     if i:#         image.append(i)# 主演for i in page.select('.star'):if i.string:mylist.append(i.string.strip())# 上映时间for i in page.select('.releasetime'):if i.string:mylist.append(i.string)f = ''# 评分for i in page.select('.score'):for x in i.select('i'):for string in x:f += stringmylist.append(f)# 列表换字典c = 0all_list = ['index', 'title', 'actor', 'time', 'score']all_mylist = []for x in mylist:c += 1all_mylist.append(x)if c == 5:c = 0yield dict(zip(all_list, all_mylist))all_mylist = []# 写入记事本中
def write_to_file(content):with open('result.txt', 'a', encoding='utf-8') as f:f.write(json.dumps(content, ensure_ascii=False) + '\n')def main():# 分页爬取 通过观察发现offset为每10换页for i in range(10):num = i * 10base_url = 'http://maoyan.com/board/4?'params = {'offset': num}# urlencode 拼接网址full_url = base_url + urlencode(params)html = get_one_page(full_url)# 返回为yield对象content = parse_one_page(html)# 写入result.txtfor x in content:write_to_file(x)if __name__ == '__main__':main()

网络爬虫-猫眼电影top100相关推荐

  1. Python3 爬虫实战 — 猫眼电影TOP100【requests、lxml、Xpath、CSV 】

    爬取时间:2019-09-23 爬取难度:★☆☆☆☆☆ 请求链接:https://maoyan.com/board/4 爬取目标:猫眼电影 TOP100 的电影名称.排名.主演.上映时间.评分.封面图 ...

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

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

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

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

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

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

  5. csv中包含多余换行符_Python3爬虫之猫眼电影TOP100(requests、lxml、Xpath、CSV)

    点击关注,我们共同每天进步一点点! [1x00]循环爬取网页模块 观察猫眼电影TOP100榜,请求地址为:https://maoyan.com/board/4 每页展示10条电影信息,翻页观察 url ...

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

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

  7. python爬电影_Python爬虫项目--爬取猫眼电影Top100榜

    本次抓取猫眼电影Top100榜所用到的知识点: 1. python requests库 2. 正则表达式 3. csv模块 4. 多进程 正文 目标站点分析 通过对目标站点的分析, 来确定网页结构, ...

  8. Python爬虫之requests+正则表达式抓取猫眼电影top100以及瓜子二手网二手车信息(四)...

    requests+正则表达式抓取猫眼电影top100 一.首先我们先分析下网页结构 可以看到第一页的URL和第二页的URL的区别在于offset的值,第一页为0,第二页为10,以此类推. 二.< ...

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

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

最新文章

  1. 1132 Cut Integer
  2. c语言计算机二级考试内容,2017计算机二级考试内容C语言
  3. Winform 进度条
  4. OSChina 周三乱弹 ——1024 程序员吐槽大会
  5. 编程三角形面积公式_利用边长计算三角形面积 — 海伦公式推导
  6. php传输数据arduino,Arduino如何和php,html文件一起使用?
  7. 【码云周刊第 8 期】面试之前,或许该高效率地学点干货了!
  8. 深度对话“百度超级链” | 链上存证,司法效率助推器
  9. pr个人宣传片制作思路及常用快捷键
  10. 一文带你了解常见的数据指标都有哪些【数据分析】
  11. git合并——衍合于挑拣(cherry-pick)——只合并某个commit
  12. springboot集成solr实现全局搜索系列
  13. 稳捷教育行业解决方案
  14. coding码市的运用
  15. 年、月、日格式正则表达式
  16. GPU跑TensorFlow的各种显卡下的电脑配置(1080ti)
  17. ExecutionException 异常类解析
  18. verlay虚拟化技术_Overlay介绍
  19. MM的爆强语录(转)
  20. 棋牌微信小游戏之多人在线斗地主源码分享

热门文章

  1. deepin装回windows系统
  2. 直线检测之极坐标表示
  3. java 音频变调_【MC】/playsound 指令所有音效代码 1.9之后的新版
  4. (原)让win8开机自动进行宽带连接
  5. Filter 过滤器实用详解
  6. 编程软件推荐--wizard
  7. 评高级工程师职称论文发表的要求有哪些
  8. 机器学习之路——KNN+交叉验证
  9. Unity场景内模型出现粉色的处理方法
  10. 关闭research_Microsoft Research的新数码照片技术已集成到Microsoft Digital Image Suite 9中...