zoukankan      html  css  js  c++  java
  • python3 re正则匹配数据获取案例

    # 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(', ')

      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()

  • 相关阅读:
    手机号不能为空
    选项卡套选项卡
    可以在一个html的文件当中读取另一个html文件的内容
    价格计算
    v形 加强版
    V形
    生成100个Div
    伪元素::after和::before
    数组中的toString,toLocalString,valueOf方法有什么区别
    JavaScript toLocaleString() 方法
  • 原文地址:https://www.cnblogs.com/x-pyue/p/7793555.html
Copyright © 2011-2022 走看看