• cchardet模块用于查找该网页的编码方式
  • 使用jsonpath模块之前拿到的是list数据,而jsonpath不能处理python数据类型,需要用json.loads转换
from typing import Type
import jsonpath
import json
import requests
import re
from user_agent import headers # 没有自己的请求头包请注释掉,去网页自己复制
import cchardetclass K36(object):'''36氪爬虫'''def __init__(self):self.url = 'https://36kr.com/'  #     self.proxies = {#     'http':'182.84.144.66:3256'# }self.container = re.compile('<script>window.initialState=(.*)</script>')def send(self):'''发送请求'''try:res = requests.get(self.url,headers=headers).contentencoding = cchardet.detect(res)['encoding']return res.decode(encoding)except:print('e')def save(self,response):'''保存文件'''# 在网页标签头部<head>找编码格式(utf-8)print('保存文件')with open('第七天/36K-2.json','w',encoding='utf-8') as f:f.write(response[0])def clean(self,data):'''数据清理'''# self.container.findall(data)拿到的是list数据,里面的第零号元素是str类型# 拿到的是list数据,而jsonpath不能处理python数据类型list_data = self.container.findall(data)str_data = list_data[0]# 使用json.loads方法转换成python类型(为了使用jsonpath找元素)dict_data = json.loads(str_data)# print(type(self.container.findall(data)))# print(type(self.container.findall(data)[0]))print('数据清理')print(jsonpath.jsonpath(dict_data,'$..widgetTitle'))return self.container.findall(data)def run(self):'''主调函数'''self.save(self.clean(self.send()))# self.clean(self.send())if __name__ == '__main__':K36().run()# 在网页检查元素里,将目标标签收缩(点击小三角收起来),右键——copy——cut element,整段标签复制出来# str_html = '<div class="styled__InfoWrap-w0pb7j-4 gookHl"><div class="layout__Skeleton-zgzfsa-3 styled__InfoLabelWrap-w0pb7j-6 fFKXfx"><span>果壳</span></div><div class="layout__Skeleton-zgzfsa-3 styled__InfoTitileWrap-w0pb7j-8 eAYHrP">我抓到一个砍树的人……他说他在保护森林?</div><div class="layout__Skeleton-zgzfsa-3 styled__InfoSummaryWrap-w0pb7j-10 lnyfpC"><span>要建好一片森林,种树很重要,适当砍伐也重要</span></div><div class="layout__Skeleton-zgzfsa-3 styled__InfoAuthorWrap-w0pb7j-12 iSOiOV"><span>果壳</span><span>果壳网官方帐号</span></div><i class="linear-background"></i></div>'# print(container.findall(str_html))

python正则匹配36氪数据相关推荐

  1. Python正则匹配 去除文本中的各类emoji表情符号

    我们的文本数据中经常会带有很多表情,如何完整地清除得到高质量的文本供我们利用呢? p = re.compile(u'['u'\U0001F300-\U0001F64F' u'\U0001F680-\U ...

  2. python正则匹配表达式(2)

    上节主要讲解python正则匹配的匹配表达式,而需要调用相应的API才能解决如何匹配的问题. 在python官方文档Regular Expression HOWTO给出了python匹配函数,官方给出 ...

  3. 使用Python 正则匹配两个特定字符之间的字符方法

    string = "<KeysViewHDF5 ['Inoisy']>" import redef cut_out(a,b,string):result = re.fi ...

  4. python正则匹配ABAC型词语

    python正则匹配ABAC型词语 前言 代码 前言 本人第一次写博客,欢迎指出不足. 代码 今天做python作业,发现很多文章不能很好地解决匹配ABAC型的词语,例如: patten =r'((. ...

  5. python正则匹配txt特定字符串(有换行)

    python正则匹配txt特定字符串(有换行) 在原txt文件中,我们需要匹配出的字符串为:休闲服务(中间参杂着换行) 直接复制到notebook里进行处理 完整代码 在原txt文件中,我们需要匹配出 ...

  6. 最大化参数 火车头_火车头采集器教程:使用正则匹配模式采集数据

    使用正则匹配模式采集数据 正则表达式很强大,利用它我们可以获得一定格式的数据,比如网址,E-mail地址,数字,字母等等.可喜的是,从3.2版开始,火车 采集器就支持正则规则的编写了,这给喜欢用正则来 ...

  7. python正则匹配汉字

    python正则匹配汉字的规则为:[\u4e00-\u9fa5] 后面可以加一个+,匹配多个汉字. 例子如下: print(re.findall(r'[\u4e00-\u9fa5]+', '这是测试用 ...

  8. python正则表达式匹配数字或者逗号_python正则表达式去掉数字中的逗号(python正则匹配逗号)...

    分析 数字中经常是3个数字一组,之后跟一个逗号,因此规律为:***,***,*** 正则式[a-z]+,[a-z]? import re sen = "abc,123,456,789,mnp ...

  9. python正则匹配果壳数据实战

    正则表达式是是比较难的知识,一般的爬虫,大部分都可以通过lxml,css选择器之类的方法选到想要的元素,只有在所有方法都用不了的时候,最后才会用正则表达式. 正则匹配的基础扫盲知识(https://w ...

最新文章

  1. redis实现对账(集合比较)功能
  2. 谷歌发布TensorFlow Privacy​:大幅提升AI模型中的隐私保护
  3. 查看EBS中BI Publisher的版本
  4. (0109)iOS开发之CocoaPods Mac App的安装和使用
  5. 利用pyhton爬虫(案例4)--你想要的图片都在这
  6. 在 Excel 内使用 ODBC 消费 SAP ABAP CDS view
  7. static成员函数和static成员
  8. python中 是什么运算符_Python 运算符
  9. pip install 报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xb5 in
  10. 并查集——团伙(洛谷 P1892)
  11. linux generic什么意思_Linux下ps aux中进程状态为Ss,S+, Rs,Ds是什么意思?
  12. 初学数模-MATLAB Quick Start! Part I
  13. Bailian1183 POJ1183 反正切函数的应用【迭代计算】
  14. 2023年东北大学理学院数学考研必看成功上岸前辈复习经验分享
  15. 实时时间OBS Studio插件(附下载地址与效果),实时时间插件date-and-time.lua的使用
  16. 马太效应和幂律分布是怎么回事?终于有人讲明白了
  17. 计算机阵列除法器原理,并行除法器 ,并行除法器结构原理是什么?
  18. 什么是PLC?可编程控制器的结构和工作原理介绍
  19. 【笔试题目整理】 网易2018校园招聘数据分析工程师笔试卷
  20. 经典Bug永流传---每周一“虫”(三十)

热门文章

  1. 对部分行业进行一轮“瞎扯淡”
  2. CocoaPods安装失败解决方法
  3. pytorch中的contiguous()函数的浅浅解释
  4. Java配置dbeaver_DBeaver
  5. dbeaver的安装
  6. 周末舞会(队列实现)
  7. “十四五”规划开局之年,VR全景行业迎来重大利好!
  8. 利用WireShark抓包iPhone手机4G网络数据
  9. 用户时间争夺战打响,“弹幕”能否撑起微博的“短视频”梦?
  10. TypeError: Cannot read property ‘clientX’ of undefined