【BOOK】【实例】【requests库+正则表达式】猫眼TOP100电影排名爬取
猫眼电影TOP100页面爬取
https://maoyan.com/board/4
##猫眼电影TOP100爬取
import requests
import re
import json
import time ## 页面抓取
def get_one_page(url):
try:
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.text
return None
except:
print('爬取失败!') ##正则解析
def parse_one_page(response):
pattern = re.compile('<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?name.*?a.*?>(.*?)</a>.*?star.*?>(.*?)</p>.*?releasetime.*?>(.*?)</p>.*?integer.*?>(.*?)</i>.*?fraction.*?>(.*?)</i>.*?</dd>', re.S)
items = re.findall(pattern,response)
## 遍历结果,生成字典
for item in items:
# yeild生成器
yield {
'排名':item[0],
'海报': item[1],
'片名': item[2].strip(),
'主演': item[3].strip()[3:] if len(item[3]) > 3 else '',
'上映时间': item[4].strip()[5:] if len(item[4]) > 5 else '',
'评分': item[5].strip() + item[6].strip(),
} ##写入文件
def write_to_file(content):
with open('film.txt', 'a', encoding='utf-8')as f:
f.write(json.dumps(content, ensure_ascii=False)+'\n') def main(offset):
url = 'https://maoyan.com/board/4?offset=' + str(offset)
response = get_one_page(url)
for item in parse_one_page(response):
print(item)
write_to_file(item) if __name__ == '__main__':
for i in range(10):
main(offset=i*10)
time.sleep(1) ## 访问时间过快可能会反爬虫,增加一个延时等待
【BOOK】【实例】【requests库+正则表达式】猫眼TOP100电影排名爬取的更多相关文章
- 7.5爬取猫眼Top100电影名单
2018-7-5 20:22:57 还有有一丢丢成就感!以后可以爬取简单网站了!比如妹子图片,只是现在不知道咋下载! 正则还是刚看,要多去用正则!正则很强大的东西! #!/usr/bin/env py ...
- 豆瓣电影信息爬取(json)
豆瓣电影信息爬取(json) # a = "hello world" # 字符串数据类型# b = {"name":"python"} # ...
- 使用Requests+正则表达式爬取猫眼TOP100电影并保存到文件或MongoDB,并下载图片
需要着重学习的地方:(1)爬取分页数据时,url链接的构建(2)保存json格式数据到文件,中文显示问题(3)线程池的使用(4)正则表达式的写法(5)根据图片url链接下载图片并保存(6)MongoD ...
- Python 爬取 猫眼 top100 电影例子
一个Python 爬取猫眼top100的小栗子 import json import requests import re from multiprocessing import Pool #//进程 ...
- python requests库网页爬取小实例:亚马逊商品页面的爬取
由于直接通过requests.get()方法去爬取网页,它的头部信息的user-agent显示的是python-requests/2.21.0,所以亚马逊网站可能会拒绝访问.所以我们要更改访问的头部信 ...
- python利用requests和threading模块,实现多线程爬取电影天堂最新电影信息。
利用爬到的数据,基于Django搭建的一个最新电影信息网站: n1celll.xyz (用的花生壳动态域名解析,服务器在自己的电脑上,纯属自娱自乐哈.) 今天想利用所学知识来爬取电影天堂所有最新电影 ...
- 正则表达式和豆瓣Top250的爬取练习
datawhale任务2-爬取豆瓣top250 正则表达式 豆瓣250页面分析 完整代码 参考资料 正则表达式 正则表达式的功能用于实现字符串的特定模式精确检索或替换操作. 常用匹配模式 常用修饰符 ...
- Python 从底层结构聊 Beautiful Soup 4(内置豆瓣最新电影排行榜爬取案例)
1. 前言 什么是 Beautiful Soup 4 ? Beautiful Soup 4(简称 BS4,后面的 4 表示最新版本)是一个 Python 第三方库,具有解析 HTML 页面的功能,爬虫 ...
- IMDB电影排行爬取分析
一.打开IMDB电影T250排行可以看见250条电影数据,电影名,评分等数据都可以看见 按F12进入开发者模式,找到这些数据对应的HTML网页结构,如下所示 可以看见里面有链接,点击链接可以进入电影详 ...
- python 豆瓣top250电影的爬取
我们先看一下豆瓣的robot.txt 然后我们查看top250的网页链接和源代码 通过对比不难发现网页间只是start数字发生了变化. 我们可以知道电影内容都存在ol标签下的 div class属性为 ...
随机推荐
- Fiddler抓包原理与操作
https://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html#2306864
- ZIAO日报 202302
2023.2 2023年2月14日 10:23 2023.2.14 继续读<Multi-View Transformer for 3D Visual Grounding>,读到了relat ...
- ios打开第三方地图app
https://www.jianshu.com/p/691dd39cb28c [ios调起 地图app]分三步: 1.配置相对于地图app的LSApplicationQueriesSchemes白名单 ...
- pytorch 入门
import matplotlib.pyplot as plt from torchvision.transforms import ToTensor import torch from torch ...
- C# Socket 通信
C# Socket通信 Socket通信主要分为两部分,服务端和客户端,其中服务端和客户端都具有接收消息和发送消息的功能,具体通信流程就是服务端先去监听一个端口号,等待客户端的连接,客户端通过指定IP ...
- yestoday once more
夏日的光为百叶窗所驯服,褪去了令人刺痛的热烈.yestoday once more~ 耳机里传来那熟悉的旋律,恍惚间仿佛回到了十五年前的那个午后,老式收音机里放着同样的歌曲,对面办公桌旁某个少年正惶恐 ...
- GuzzleHttp示例
一般请求 $httpClient = new Client([ 'timeout' => 5 ]); $request = $httpClient->post("http://l ...
- 取得SAP服务器主机名(host name)和端口号(port)函数[TH_GET_VIRT_HOST_DATA]
本文转载至:http://www.baidusap.com/abap/function/4245 是要Vcode开发abap的时候,连接服务器的时候需要端口号,可以用函数TH_GET_VIRT_HOS ...
- Vue 更改数组中的值,页面不刷新问题。解决方法+原理说明
一.Vue 更改数组中的值,页面不刷新问题 data{ hobby:["打游戏","想静静","发呆"] } 1.错误写法(页面不刷新): ...
- 使用CMD创建任意文件
C:\>fsutil file createnew 用法 : fsutil file createnew <文件名> <长度> 范例:fsutil file create ...