关键词:
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。 作为一个分布式的数据构... 查看详情