#-*- coding:utf-8 -*-
#读取北京FDA的药品经营企业数据
# 20161125 zhangshaohua
import re
import urllib.request
import urllib.parse
import os def getContent(url,pat,charSet):
#指定网址、正则表达式、编码方式,返回指定内容
page = urllib.request.urlopen(url)
content = page.read().decode(charSet)
pattern = re.compile(pat)
result = re.findall(pattern,content) return result
#读取首页
url = 'http://www.bjda.gov.cn/eportal/ui?pageId=331148' #取总记录数,每页20条
zjls = getContent(url,'总记录数:(\d{1,5}),','UTF-8') vdzjls = int(zjls[0])
vdzjls = int(round(vdzjls/20,0)) for i in range(51,vdzjls):
url = 'http://www.bjda.gov.cn/eportal/ui?pageId=331148&currentPage='+str(i)
pattern = 'artileId=(.*)">查看'
page_id = getContent(url,pattern,'UTF-8')
for url_id in page_id:
try:
subid = url_id
suburl = "http://www.bjda.gov.cn/eportal/ui?pageId=331631&artileId="+subid
qymc = getContent(suburl,'企业名称:</th>\r\n.*?<td>(.*?)</td>','UTF-8')
zcdz = getContent(suburl,'注册地址:</th>\r\n.*?<td>(.*?)\s{0,3}</td>','UTF-8')
xkzh = getContent(suburl,'许可证号:</th>\r\n.*?<td>(.*?)</td>','UTF-8') print(qymc,zcdz,xkzh)
file_object = open('bjda.txt','a')
file_object.write(qymc[0])
file_object.write(',')
file_object.write(zcdz[0])
file_object.write(',')
file_object.write(xkzh[0])
file_object.write('\n\r') finally:
None
file_object.close() vdzjls = int(zjls[0]) print('药品零售企业读取完成!')

  经历了读取HDA的练习,此次读取BJ的数据开始比较顺畅。在读取996条数据时出错,再次出现换行造成的问题;

多次试错后用‘\s{0,3}’成功解决.

正则表达式要继续学习,才能不断进步,避免遇“”坑“”时能顺利通过!

python3读取BJDA药品经营企业数据的更多相关文章

  1. python3读取HDA零售企业数据(一)

    #-*- coding:utf-8 -*- # 下载河南FDA各药品经营企业目录 import urllib.request import urllib.parse import re import ...

  2. python3 读取表格的数据

    python3 读取表格的数据 xlrd1.1.0的下载网址:https://pypi.python.org/pypi/xlrd. xlrd1.1.0兼容python2和python3. python ...

  3. python3 读取串口数据

    python3 读取串口数据 demo import serial import time ser = serial.Serial("COM3",115200,timeout = ...

  4. python3 读取txt文件数据,绘制趋势图,matplotlib模块

    python3 读取txt文件数据,绘制趋势图 test1.txt内容如下: 时间/min cpu使用率/% 内存使用率/% 01/12-17:06 0.01 7.61 01/12-17:07 0.0 ...

  5. DataPipeline丨新型企业数据融合平台的探索与实践

    文 |刘瀚林 DataPipeline后端研发负责人 交流微信 | datapipeline2018 一.关于数据融合和企业数据融合平台 数据融合是把不同来源.格式.特点性质的数据在逻辑上或物理上有机 ...

  6. 未来科技城 x 奇点云打造「企业数据大脑」,助力1.3万家企业服务

    “当前,政府数字化和数字政府建设已成为一种趋势.一种必然,并且有了一条水到渠成式的实现路径.” 上升为国家战略的数字中国建设加速了”智慧政务“的生动实践,杭州未来科技城的「企业数据大脑」就是一个典型. ...

  7. IntelliJ IDEA 在网页修改数据,但是在浏览器刷新的时候,不能读取到修改之后的数据

    使用IntelliJ IDEA 在网页修改数据,但是在浏览器刷新的时候,不能读取到修改之后的数据? 解决办法:tomcat配置中,On frame deactivation属性选择Update cla ...

  8. Android - 读取XML文件中的数据

    读取XML中存储的数据.将xmlfile.xml存放在assets文件夹中.在activity_main.xml中创建一个textview,用来显示读取到的数据. XML文件内容如下:xmlfile. ...

  9. 数据库学习任务四:数据读取器对象SqlDataReader、数据适配器对象SqlDataAdapter、数据集对象DataSet

    数据库应用程序的开发流程一般主要分为以下几个步骤: 创建数据库 使用Connection对象连接数据库 使用Command对象对数据源执行SQL命令并返回数据 使用DataReader和DataSet ...

随机推荐

  1. 【状态压缩DP】【BZOJ1087】【SCOI2005】互不侵犯king

    1087: [SCOI2005]互不侵犯King Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3135  Solved: 1825[Submit][ ...

  2. 将本地jar包安装进入maven仓库

    实际项目中pom.xml依赖写法: <dependency> <groupId>org.springframework</groupId> <artifact ...

  3. java内存溢出分析工具:jmap使用实战

    在一次解决系统tomcat老是内存撑到头,然后崩溃的问题时,使用到了jmap. 1 使用命令 在环境是linux+jdk1.5以上,这个工具是自带的,路径在JDK_HOME/bin/下 jmap -h ...

  4. react with JSX for {if…else…}

    在react中用jsx渲染dom的时候经常会遇到if条件判断,然而在jsx中竟是不允许if条件判断的.以下有几种判断方式,可以根据自己的应用场景,挑选适合的 https://blog.csdn.net ...

  5. Hive设置参数的三种方法

    Hive提供三种可以改变环境变量的方法,分别是:(1).修改${HIVE_HOME}/conf/hive-site.xml配置文件:(2).命令行参数:(3).在已经进入cli时进行参数声明.下面分别 ...

  6. Hive删除分区

    Hive删除分区语句: alter table table_name drop if exists partition(dt=30301111)

  7. 2017.3.31 spring mvc教程(六)转发、重定向、ajax请求

    学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...

  8. badblocks检测磁盘坏道

    1.检测整个盘如/dev/sdb #badblocks -v /dev/sdb > badsectors.txt 2.检测一个分区#badblocks -v /dev/sdb1 > bad ...

  9. MFC对话框贴图基础上控件Stasic变成透明的

    对应WM_CTLCOLOR函数 加入下面代码: HBRUSH CMFCApplication2Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) ...

  10. Windows web服务器搭建---阿里云

      前提步骤: 1)申请域名---- 阿里云.花生壳.万维网等等. 2)云主机购买-----阿里云.腾讯云.京东云等等. 3)网站备案,此步骤最长. 4)建立网站 5)部署网站 下面主要介绍如何部署网 ...