# coding=utf-8
import requests
import json
from retrying import retry
import re

class TyY:

  def __init__(self):
    self.url = ["http://www.tylaw.cn/cgi-bin/GLaw.dll?DispInfo&nid={}".format(i) for i in range(3723, 3752)]
    self.headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36"
    }

  @retry(stop_max_attempt_number=3) # 设置最大请求连接数
  def _parse_url(self, url):

    response = requests.get(url, headers=self.headers, timeout=3)
    assert response.status_code == 200
    response.encoding = "gb2312"
    return response.text

  def parse_url(self, url):
    try:
      html = self._parse_url(url)
    except:
      html = None
    return html

  def get_content_list(self, html):
    content_list = []
    item = {}

    item['name'] = re.findall(r"<p align='center' class='titlc'>.*?律师:(.*?)简介.*?</p>", html, re.S)[0] if len(re.findall(r"<p align='center' class='titlc'>.*?律师:(.*?)简介.*?</p>", html, re.S)) > 0 else None
    item['email'] = re.findall(r"<div class='contc'>.*?【电子信箱】(.*?) </div>", html, re.S)[0] if len(re.findall(r"<div class='contc'>.*?【电子信箱】(.*?) </div>", html, re.S)) > 0 else None
    content_list.append(item)

    # print(item)
    return content_list

  def save_content(self, content_list):
    with open("tyy.json", "a") as f:
      for content in content_list:
        json.dump(content, f, ensure_ascii=False)
        f.write(',\n')

  def run(self):
    url_list = self.url
    for url in url_list:
      html = self.parse_url(url)
      content_list = self.get_content_list(html)
      self.save_content(content_list)

if __name__ == '__main__':
tyy = TyY()
tyy.run()

转载于:https://www.cnblogs.com/x-pyue/p/7793555.html

python3 re正则匹配数据获取案例相关推荐

  1. Python2和Python3正则匹配中文时的编码问题

    Python2和Python3正则匹配中文时的编码问题 我们都会遇到这样的人,他们说话时是中文英文穿插使用的.也就是一句话中有中文也有英文,很多时候没有办法避免,尤其是说一些专业术语时,当然也有纯个人 ...

  2. python3中find函数的用法_Python3正则匹配re.split,re.finditer及re.findall函数用法详解...

    本文实例讲述了Python3正则匹配re.split,re.finditer及re.findall函数用法.分享给大家供大家参考,具体如下: re.split re.finditer re.finda ...

  3. 函数柯里化的作用一:参数复用(正则匹配案例)

    什么是函数柯里化 currying? 做题时看到 currying 这个词还挺有意思的,本意是咖喱,翻译为中文叫柯里化,是因为是以逻辑学家 Haskell Curry 命名的. arity(参数个数) ...

  4. 正则匹配以除了开头和结尾要有个大写_27.Google analytics 中的 正则表达式

    餐卡如下文章: GA正则表达式regex终极攻略 - Damon Analytics​damonanalytics.com https://support.google.com/analytics/a ...

  5. php正则匹配js中变量_PHP正则表达式核心技术 第4节 php查找匹配函数使用心得

    作者:极客小俊 一个专注于web技术的80后 你不用拼过聪明人,你只需要拼过那些懒人 你就一定会超越大部分人! php中兼容Perl的正则表达式处理函数 在我们说php系统自带的正则处理函数之前,我们 ...

  6. php正则匹配域名不包含端口_3分钟短文 | PHP极速匹配子字符串,你是怎么做的?...

    引言 在项目开发中我们经常会遇到这样的需求,比如用户提交的表单中含有一些文本的内容.我们需要在后台为其进行关键词过滤处理. 那么问题来了,如何在海量的字符串中快速的匹配一些子字符串呢?今天我们就给大家 ...

  7. python中re模块及正则匹配

    Python中正则表达式 re:re是提供正则表达式匹配操作的模块 一.什么是正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某个模式匹配,Python 自1.5版本起 ...

  8. 正则匹配数字和字母php,用php与js实现正则匹配数字和字母组合的密码

    这次给大家带来用php与js实现正则匹配数字和字母组合的密码,用php与js实现正则匹配数字和字母组合密码的注意事项有哪些,下面就是实战案例,一起来看一下. 本文实例讲述了正则匹配密码只能是数字和字母 ...

  9. JS 正则表达式(正则匹配RegExp)

    JavaScript实现对象深拷贝的方法(5种) 知识回调(不懂就看这儿!) 场景复现 核心干货 举例引入 关于RegExp对象 语法 修饰符--区分大小写和全局匹配 方括号--查找某个范围内的字符 ...

最新文章

  1. C语言hk,C语言再学习
  2. 物联网技术概论的课程编号_课程 物联网应用实战 7月班仅剩3个席位
  3. 我爸和在我们小区里的一位老大爷
  4. iOS中容易混淆的知识点(持续更新中)
  5. s11.1 lsof:查看进程打开的文件
  6. “希希敬敬对”团队作业——敏捷冲刺5
  7. mysql删除完全重复数据库_MySQL中删除完全重复数据的准确SQL语句
  8. 8本前沿技术书,助力这届「青年人」将科幻变成现实
  9. 亚洲新首富出炉!富豪榜单大洗牌,马云3年来首次跌出中国前三
  10. 麦克纳姆轮全向移动机器人斜向直线运动分析
  11. Owin服务无法启动问题整理
  12. Go 爱好者福利,《Go 语言编程之旅》正式开源!
  13. 博士申请 | 美国弗吉尼亚理工大学周大为老师招收图神经网络方向全奖博士生...
  14. 调试经验——用XML格式定义Excel (.xls格式)文件 (XML Spreadsheet format in Excel)
  15. 计算机起始时间1970
  16. 《趣味知识博文》小W与小L带你聊天式备考CDA Level Ⅰ(六)
  17. windows环境下将yolo-fatest的caffe模型转化为wk模型
  18. 梦回JDBC —— (Statement对象)
  19. 国外热度高的域名有哪些类?
  20. 在try-catch机制优化IO流关闭时,OutputStreamWriter 数据流被截断 新语法

热门文章

  1. phoenix 根据条件更新_元旦前不必扎堆买新车!北京:出售车辆后,申请更新指标无时限...
  2. mysql resultset null_com.mysql.jdbc.driver中resultset报NullException
  3. vue获取url中ip_Kubernetes 集群中这样获取客户端真实 IP
  4. shared_ptr and
  5. e7用什么主板_主板当中的纽扣电池有什么用?电池没电了会怎样?
  6. html文档支持代码高亮,为HTML中的代码添加语法高亮
  7. python字符映射与文件加密
  8. nginx服务器配置安全维护,nginx 安全:如何强化服务器配置
  9. TensorFlow:判断CUDA和GPU是否可用
  10. python glob用法