request+正则爬猫眼电影榜top100

import requests#d导入requests模块from multiprocessing import Pool#进程池from requests.exceptions import RequestException#用于异常处理import jsonimport re#导入正则表达式

headers={    ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36‘}def get_one_page(url):#请求单页内容的方法    try:        response = requests.get(url,headers=headers)#用requests.get请求url        if response.status_code == 200:#判断,如果请求到的状态码==200(请求成功)            return response.text#返回网页内容        return None#如果是其他状态码返回None    except RequestException:        return None

def parse_one_page(html):#解析单页内容    pattern = re.compile(‘<dd>.*?board-index.*?>(\d+)</i>.*?src="(.*?)".*?name"><a‘+‘.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>‘                         +‘.*?integer">(.*?)</i>.*?fraction">(.*?)</i>.*?</dd>‘,re.S)#编写正则表达式    items = re.findall(pattern,html)#应用已编好的正则表达式    for item in items:#遍历        yield {            ‘排名‘:item[0],            ‘图片地址‘: item[1],            ‘标题‘: item[2],            ‘主演‘: item[3].strip()[3:],            ‘上映时间‘: item[4].strip()[5:],            ‘评分‘: item[5]+item[6]        }

def write_to_file(content):#将爬取结果保存到resuli.txt    with open(‘result.txt‘,‘a‘,encoding=‘utf-8‘) as f:        f.write(json.dumps(content,ensure_ascii=False)+‘\n‘)        f.close()

def main(offset):    url = ‘http://maoyan.com/board/4?offset=‘+str(offset)    html = get_one_page(url)    for item in parse_one_page(html):        print(item)        write_to_file(item)

if __name__=="__main__":    pool = Pool()#构造进程池    pool.map(main,[i*10 for i in range(10)])#爬取多页

原文地址:https://www.cnblogs.com/liunaiming/p/12234895.html

时间: 2024-08-30 08:36:11

request+正则爬猫眼电影榜top100的相关文章

00_抓取猫眼电影排行TOP100

前言: 学习python3爬虫大概有一周的时间,熟悉了爬虫的一些基本原理和基本库的使用,本次就准备利用requests库和正则表达式来抓取猫眼电影排行TOP100的相关内容. 1.本次目标: 需要爬去出猫眼电影排行TOP100的电影相关信息,包括:名称.图片.演员.时间.评分,排名.提取站点的URL为http://maoyan.com/board/4,提取的结果以文本形式保存下来. 2.准备工作 只需要安装好requests库即可. 安装方式有很多种,这里只简单的介绍一下通过pip这个包管理工具

python爬取猫眼电影的Top100

1 查看网页结构 (1)确定需要抓取的字段 电影名称 电影主演 电影上映时间 电影评分 (2) 分析页面结构 按住f12------->点击右上角(如下图2)---->鼠标点击需要观察的字段 (3)BeautifulSoup解析源代码并设置过滤属性 1 soup = BeautifulSoup(htmll, 'lxml') 2 Movie_name = soup.find_all('div',class_='movie-item-info') 3 Movie_Score1=soup.find_

使用requests爬取猫眼电影TOP100榜单

Requests是一个很方便的python网络编程库,用官方的话是"非转基因,可以安全食用".里面封装了很多的方法,避免了urllib/urllib2的繁琐. 这一节使用requests库对猫眼电影的TOP100榜进行抓取. 1 获得页面. 首先确定要爬取的url为http://maoyan.com/board/4,通过requests模块,打印出页面的信息 def get_a_page(url): try: response = requests.get(url) if respon

python爬取猫眼电影top100

最近想研究下python爬虫,于是就找了些练习项目试试手,熟悉一下,猫眼电影可能就是那种最简单的了. 1 看下猫眼电影的top100页面 分了10页,url为:https://maoyan.com/board/4?offset=0 我们发起请求,得到相应: 我们 我使用的是requests库,这是一个第三方的库. 2 利用正则解析爬取下的页面 当然你也可以使用xpath和bs4. 我们先看一下网页的源代码: 然后根据代码写出要匹配的正则,然后对匹配出来的数据做解析: 3 将抓到的数据写入本地文件

猫眼电影爬取(二):requests+beautifulsoup,并将数据存储到mysql数据库

上一篇通过requests+正则爬取了猫眼电影榜单,这次通过requests+beautifulsoup再爬取一次(其实这个网站更适合使用beautifulsoup库爬取) 1.先分析网页源码 可以看出每部电影信息都包含在一堆<dd>...</dd>标签中,所以第一步可以通过beautifulsoup库解析出所有<dd>标签对,然后再从<dd>标签对中依次解析排名所在的<i>标签,电影名所在的<p>标签,上映时间所在的<p>

爬虫实战01——爬取猫眼电影top100榜单

#需求:抓取猫眼电影TOP100的电影名称.时间.评分.图片等信息,提取的结果会以文件的形式保存下来 import requests import time from lxml import etree import json import csv import codecs class MaoYanTop100Spider: #存储电影详情页的url film_page_url_list = [] #存储每个的电影信息 #film_info = {} film_info_list = [] #

python爬取猫眼电影top100排行榜

爬取猫眼电影TOP100(http://maoyan.com/board/4?offset=90)1). 爬取内容: 电影名称,主演, 上映时间,图片url地址保存到mariadb数据库中;2). 所有的图片保存到本地/mnt/maoyan/电影名.png 代码: import re import pymysql as mysql from urllib import request from urllib.request import urlopen u = 'root' p = 'root'

python学习之抓取猫眼电影Top100榜单

目录 1 本篇目标 2 url分析 3 页面抓取 4 页面分析 5 代码整合 6 优化 参考: 近期开始学习python爬虫,熟悉了基本库.解析库之后,决定做个小Demo来实践下,检验学习成果. 1 本篇目标 抓取猫眼电影总排行榜Top100电影单 根据电影演员表统计演员上榜次数 2 url分析 目标站点为https://maoyan.com/board/4,打开之后就可以看到排行榜信息,如图所示 页面上显示10部电影,有名次.影片名称.演员信息等信息.当拉到最下面点击第二页的时候,发现url变

# [爬虫Demo] pyquery+csv爬取猫眼电影top100

目录 [爬虫Demo] pyquery+csv爬取猫眼电影top100 站点分析 代码君 [爬虫Demo] pyquery+csv爬取猫眼电影top100 站点分析 https://maoyan.com/board/4?offset=0 翻页操作只会改变offset偏移量,每部电影的信息都在dd标签内,使用pyquery库中的css选择器直接解析页面 代码君 css选择器直接选择和使用find()方法的区别:find()用于选择子节点,因此限定了选择的区域,速度可能要快些,直接传入''选择器可能