2020年寒假学习进度第十五天

ljm-zsy ljm-zsy     2023-04-18     464

关键词:

python使用正则抓取数据

 

  今天主要学习了python使用正则抓取网页数据。

 

首先这是正则的几个步骤:

1、用import re 导入正则表达式模块;

2、用re.compile()函数创建一个Regex对象;

3、用Regex对象的search()或findall()方法,传入想要查找的字符串,返回一个Match对象;

4、调用Match对象的group()方法,返回匹配到的字符串

import requests
from requests.exceptions import RequestException
import re
import json
from multiprocessing import Pool

# 获取单个页面
def get_one_page(url):
    try:
        # 添加头部信息
        headers = 
            ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36‘
        
        response = requests.get(url, headers=headers)
        # 进行状态码判断,是否正确读取到网页
        if response.status_code == 200:
            return response.text
        return 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)
    # print(items)
    for item in items:
        yield 
            ‘index‘: item[0],
            ‘image‘: item[1],
            ‘title‘: item[2],
            ‘actor‘: item[3].strip()[3:],
            ‘time‘: item[4].strip()[5:],
            ‘score‘: item[5] + item[6]
        

# 将抓取的内容保存到文件
def write_to_file(content):
    with open(‘result.txt‘, ‘a‘, encoding=‘utf-8‘) as f:
        f.write(json.dumps(content, ensure_ascii=False) + ‘
‘)
        f.close()

def main(offset):
    url = ‘http://maoyan.com/board/4?offset=‘ + str(offset)
    html = get_one_page(url)
    # print(html)
    # parse_one_page(html)
    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)])
    # for i in range(10):
      # main(i*10)

  技术图片

 

 

 

代码和数据转载自CSDN:https://blog.csdn.net/whjkm/article/details/80846544

 

2020年寒假学习进度第十天

 今天主要学习了实验7Spark机器学习库MLlib编程实践,主要代码:importorg.apache.spark.ml.feature.PCAimportorg.apache.spark.sql.Rowimportorg.apache.spark.ml.linalg.Vector,Vectorsimportorg.apache.spark.ml.evaluation.MulticlassClassificationEvaluatorimportorg.apache.spark.ml.P... 查看详情

2020年寒假学习进度第七天

今天主要学习了spark实验四的内容,实验四主要为RDD编程,本实验的重点为两个编程题 1.编写独立应用程序实现数据去重对于两个输入文件A和B,编写Spark独立应用程序,对两个文件进行合并,并剔除其中重复的内容,得到一... 查看详情

2020年寒假学习进度第六天

今天主要进行了spark实验六的学习,SparkStreaming编程初级实践Flume是非常流行的日志采集系统,可以作为SparkStreaming的高级数据源。请把FlumeSource设置为netcat类型,从终端上不断给FlumeSource发送各种消息,Flume把消息汇集到Sink,这里... 查看详情

2020年寒假学习进度

...sp;  由于下学期就要进行毕业设计答辩,打算这个寒假在家先继续巩固知识和学习新的技术要点,然后着力进行毕业设计的开发。    今天主要复习了一些关于javaweb的内容,总结如下:(1)WEB,也就是网页... 查看详情

2020年寒假学习进度第二天

今天主要研究了spark实验二的第一部分的Scala编写,看完代码后发现需要在REPL模式下运行,经过查证发现需要安装scala脚本,所以尝试在虚拟机中安装scala,成功后使用给的代码尝试运行,但是出错,提示没有找到类的定义,经过... 查看详情

2020年寒假学习进度第九天

今天主要解决了实验五未解决的问题,前天在做实验五spark连接mysql时出现找不到jar包的问题,看了网上的讲解,调整了一下路径,有人说jar包要放在同名的一个文件夹里,实际上jar包应该直接放在spark安装目录的jars目录下就可... 查看详情

2020年寒假第5次学习进度记录

当日学习内容:阅读《梦断代码》、视频学习前台技术(HTML(JSP)+CSS)1.《梦断代码》阅读近况   今天,我阅读了第9章“方法”和第10章“工程师和艺术家”。      在第9章“方法&rd... 查看详情

2020寒假学习进度报告2

  今日完成内容:学习了scala中的语法,主要知识点包括:变量的定义,数值类型,运算符,流程控制,for循环,while循环,do...while循环,(不建议使用while和do...while,因为函数引入了外部变量),函数尤其是递归,之前学习其... 查看详情

寒假学习进度06

日期:2020.01.26博客期:134星期日    1、Python爬取任务已经完成,包括制作网页可视化,详情请看博客:https://www.cnblogs.com/onepersonwholive/p/12229362.html!  2、开始着手于“热词分析”方面的爬取(现在对于热词从哪里... 查看详情

2020寒假学习进度报告6(代码片段)

  1.计算级数  请用脚本的方式编程计算并输出下列级数的前n项之和Sn,直到Sn刚好大于或等于q为止,其中q为大于0的整数,其值通过键盘输入。   例如,若q的值为50.0,则输出应为:Sn=50.416695。请将源文件保存为exerci... 查看详情

第十五天和十六天学习笔记

第十五天学习笔记:主要学习了HTML5:1<!DOCTYPEhtml><!--文档类型声明-->2<html>3<head>4<title>学习HTML5</title>5<metacharset="UTF-8">6</head>7<body>8<p>学习html5</p& 查看详情

2020/2/5寒假自学——学习进度报告12(代码片段)

  今天主要完成了北京市政百姓信件分析实战。  Spark方面只是安装了Flume,以及尝试使用套接字流作为DSteam的数据源。  启动NetCat作为套接字的监听模式,这样在端口9999就能和spark互联。    值得一提,nc-l9999虽... 查看详情

2020/2/1寒假自学——学习进度报告8(代码片段)

  开始尝试sparkSQL的尝试编程。  SparkSQL总体来说就是spark中的hive,但麻烦的一点是spark官网下载的并不自带对hive的支持,所以不能使用外部的hive。之后解决。  所以这次主要关注dataframe的编程。  首先创建了一个json文... 查看详情

2020/2/13寒假自学——学习进度报告16(代码片段)

  电脑修好了,但之前落下的几天博客确实没啥补的劲头,今天先写一份报告吧。  实验内容和要求安装Flume 安装成功。使用Avro数据源测试Flume配置文件  启动flumeagenta1创建指定的日志文件客户端传输传输完成&nbs... 查看详情

2020/1/18寒假自学——学习进度报告3(代码片段)

  紧接上一次。  这次是对于spark安装的总结。  首先便是下载spark。   从官网上可以找到用户提供Hadoop环境的安装包,另外值得一提的是用户也可以无需自己安装hadoop而是选择原装包括了hadoop的安装包。   ... 查看详情

swift学习第十五天:闭包

...时可能不习惯它的语法,可以先按照使用简单的闭包,随着学习的深入,慢慢掌握其灵活的运用方法.闭包的使用block的用法回顾定义网络请求的类@interfaceHttpTool:NSObject-(void)loadReque 查看详情

寒假学习进度十九

今天发现自己的Androidstudio版本有些低,于是删除重新在官网下载了最新版本的,结果新建项目会报错,unabletofindvalidcertificationpathtorequestedtarget,今天没有解决明天再说 查看详情

2020/1/24寒假自学——学习进度报告5

  接下来要写4篇的进度报告,准备把RDD编程和SparkSQL放在这几天一起弄掉(没回老家的大年三十稍微有些无聊)。  这一篇我想先笼统一下各方面的知识,省的有不理解的地方。  首先是RDD。  作为一个分布式的数据构... 查看详情