爬取排污许可证所有详细信息2020.5.28

from tkinter import *  # 导入窗口控件
import requests
from lxml import etree
from tkinter import ttk
from bs4 import BeautifulSoup
import webbrowser  # 调用浏览器打开网页
from tkinter import messagebox  # 弹出提示框
from openpyxl import Workbook
import time  #延时

treedata1=[]   #全局变量用于存储查询到企业详细信息数据
def download_song():
    # 打开查询页面,得到页面总数....................................................
    datas = {
   "page.pageNo": "1",
             "page.orderBy": "",
             "page.order": "",
             "province": "210000000000",
             "city": "211300000000",
             "registerentername": "",
             "xkznum": "",
             "treadname": "",
             "treadcode": "",
             "publishtime": ""}
    url = "http://permit.mee.gov.cn/permitExt/syssb/xkgg/xkgg!licenseInformation.action"
    r = requests.post("http://permit.mee.gov.cn/permitExt/syssb/xkgg/xkgg!licenseInformation.action", data=datas)
    r = requests.post(url, data=datas)
    html = etree.HTML(r.text)
    urlpage = html.xpath('//div[@class="fr margin-t-33 margin-b-20"]/a/@onclick')[5]  # 找到HTML中总页数
    urlpageidstr = urlpage[21:23]  # 截取字符串,得到总页数
    # 开始爬取所有页面数据
    start_page = 1
    #urlpageidstr=(int(urlpageidstr))
    urlpageidstr = 2  # 调试数据暂定为2页,提高效率
    messagebox.showinfo("提示", "数据正在读取请稍候。。。。")
    for page in range(start_page, urlpageidstr):
        content = page
    # 打开查询页面,得到每个具体企业信息的链接....................................................
        urlpage = content
        datas = {
   "page.pageNo": urlpage,
             "page.orderBy": "",
             "page.order": "",
             "province": "210000000000",
             "city": "211300000000",
             "registerentername": "",
             "xkznum": "",
             "treadname": "",
             "treadcode": "",
             "publishtime": ""}
        url = "http://permit.mee.gov.cn/permitExt/syssb/xkgg/xkgg!licenseInformation.action"
        r = requests.post("http://permit.mee.gov.cn/permitExt/syssb/xkgg/xkgg!licenseInformation.action", data=datas)
        r = requests.post(url, data=datas)
        html = etree.HTML(r.text)
        href_url = html.xpath('//table[@class="tabtd"]/tr/td/a/@href')
        href_name = html.xpath('//table[@class="tabtd"]/tr')[1:]
        urlpage = html.xpath('//div[@class="fr margin-t-33 margin-b-20"]/a/@onclick')[5]  # 找到HTML中总页数
        #urlpageidstr = urlpage[21:23]  # 截取字符串,得到总页数
        #print(urlpageidstr)
        i = 0
        datasum=0 #记录爬取数据个数
        # 打开查询页面,得到第N个企业的详细 信息....................................................
        for href_url, roos in zip(href_url, href_name):
            addurl = href_url
            name = roos.xpath('./td[4]/text()')[0]
            i = i + 1
            addurl = addurl[39:93]
            datas = {
   "xkgk": "getxxgkContent",
                 "dataid": addurl}
            url = "http://permit.mee.gov.cn/permitExt/xkgkAction!xkgk.action?xkgk=" + addurl
            html = requests.get(url, headers=datas)
            soup = BeautifulSoup(html.text, 'lxml')
            name_id = soup.find_all('p', style="font-size:36px;")[0].text  # 得到企业名称
            name_add = soup.find_all('p', style="font-weight: bold;color: green;font-size: 14px;")[0].text  # 得到企业地址等信息 ..strip() 属性删除空格
            content = name_add
            content = content.strip()  # 删除字符串左边空格
            content = content.split()  # 拆分字符串,通过指定分隔符对字符串进行分割,默认是空格。rstrip("\xa0\xa0\xa0\xa0\r\n\t\t\t")
            # content=content.partition(":")
            str2 = ''.join(content)
            u1, u2, u3, u4, u5 = str2.split(':', 4)
            f1 = u2.find('行业类别')
            f2 = u2[0:f1]
            g1 = u3.find('所在地区')
            g2 = u3[0:g1]
            h1 = u4.find('发证机关')
            h2 = u4[0:h1]
            #ii = str(i)
            paiwuxukebianhao=soup.find_all('table', class_="tab0")[0].text.strip
### 回答1: 很高兴为您解答。这个问题的解决方案取决于您的爬虫的目的。如果您的目的是爬取排污许可证的所有详细信息,那么您可以使用Python中的requests库进行爬取。您可以使用该库来发起GET请求,从而获取排污许可证的所有详细信息。 ### 回答2: 编写一个Python爬虫来获取排污许可证详细信息可以分为以下步骤: 1. 寻找数据源:首先需要确定排污许可证信息的来源网站。可以使用搜索引擎来查找相关的政府或行业监管机构的网站,以获取相关信息。例如,可以访问环保部门的网站或者相关的行业协会网站。 2. 分析网站结构:通过查看网站的HTML结构,了解目标信息所在的位置和格式。可以使用浏览器的开发者工具来查看网页源代码,或者使用Python的库如BeautifulSoup来帮助解析HTML。 3. 编写爬虫代码:根据分析的网站结构,编写Python爬虫代码来获取目标信息。可以使用Python的库如requests来发送HTTP请求获取网页内容,然后使用BeautifulSoup等库解析HTML并提取所需信息。 4. 数据存储:将获取的详细信息存储到合适的数据结构中,例如可以使用Python的CSV模块将数据保存到CSV文件中,或者使用数据库来存储数据。 5. 爬虫优化:为了提高爬取效率和稳定性,可以添加合适的延时、错误处理和日志功能。此外,为了遵守网站的爬取规则,可以设置合适的请求头和User-Agent。 6. 定期更新:由于排污许可证相关信息可能会不断更新,建议设置定期运行爬虫,以获取最新的详细信息。 需要注意的是,爬取网站上的信息要合法合规,遵循相关的法规和条例。在实际应用中,还需注意网站的访问频率和是否需要登录等问题。 ### 回答3: 要编写一个Python爬虫爬取排污许可证的所有详细信息,可以按照以下步骤进行: 1. 确定目标网站:找到一个包含排污许可证信息的网站,可以通过搜索引擎或专业网站来寻找。确保网站允许爬取数据,遵守相关法律法规。 2. 安装所需的库:爬虫通常需要使用第三方库,如requests、BeautifulSoup等。使用pip命令安装所需库,如:pip install requests 3. 发送HTTP请求获取页面:使用requests库中的get方法发送HTTP请求,获取目标网站的页面内容。可以使用requests.get(url)来获取页面内容,url为目标网站的地址。 4. 解析页面内容:使用BeautifulSoup库来解析页面,从中提取所需的信息。可以使用BeautifulSoup(page.content, 'html.parser')来解析页面内容,page为前一步获取的页面内容。 5. 定位目标元素:查看目标网站的HTML结构,确定排污许可证信息所在的HTML标签。通过BeautifulSoup提供的find或find_all方法来定位目标元素。 6. 提取信息并保存:从HTML元素中提取所需的信息,并保存为需要的格式,如CSV、JSON等。可以使用Python的文件操作方法来保存数据。 7. 遍历多个页面:如果排污许可证信息分布在多个页面,可以通过循环遍历多个页面,重复上述步骤来获取所有详细信息。 8. 添加延时和异常处理:为避免给目标网站造成压力,需要在爬取过程中添加适当的延时。同时,对于可能的异常情况,可以使用try-except语句进行异常处理。 值得注意的是,尽管Python爬虫在获取公开数据方面非常有用,但必须遵守法律法规和伦理准则,不可用于非法获取个人或敏感信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值