爬取排污许可证企业详细信息(测试一)

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

#爬取排污许可证详细信息并写入EXCEL
def download_song():
    url_id = "getxxgkContent&dataid=9339c790f8694f878b81e6fdc864be69"
    datas = {"xkgk": "getxxgkContent",
             "dataid": url_id}
    url = "http://permit.mee.gov.cn/permitExt/xkgkAction!xkgk.action?xkgk=" + url_id

    # for i in range(1): #获取前10页内容,此页面只有1面,取消循环
    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(":")

    str = ''.join(content)
    u1, u2, u3, u4, u5 = str.split(':', 4)
    f1 = u2.find('行业类别')
    f2 = u2[0:f1]
    g1 = u3.find('所在地区')
    g2 = u3[0:g1]
    h1 = u4.find('发证机关')
    h2 = u4[0:h1]

    wb = Workbook()  # 创建文件对象
    # grab the active worksheet
    ws = wb.active  # 获取第一个sheet
    cell = ws["A1"]
    cell.value = '生产经营场所地址'
    cell = ws['A2']
    cell.value = f2
    cell = ws["B1"]
    cell.value = '行业类别'
    cell = ws['B2']
    cell.value = g2
    cell = ws["C1"]
    cell.value = '所在地区'
    cell = ws['C2']
    cell.value = h2
    cell = ws["D1"]
    cell.value = '发证机关'
    cell = ws['D2']
    cell.value = u5

    #wb.save("d:\\sample.xlsx")

pass

root = Tk()  # 创建窗口
root.title("label-test")
root.geometry("200x200+600+300")  # 小写x代表乘号500x400为窗口大小,+500+300窗口显示位置
button = Button(root, text="开始下载", font=('华文行楷', 20), command=download_song)  # 创建按钮控件
button.grid(row=5, column=0, sticky=W)  # 位置显示在2行,0列,对齐方式 W  ,N,S,E
#button1 = Button(root, text="退出", font=('华文行楷', 10), command=root.quit)  # 创建按钮控件
#button1.grid(row=5, column=1, sticky=W)  # 位置显示在2行,0列,对齐方式 W  ,N,S,E

root.mainloop()  # 显示窗口  mainloop 消息循环

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
### 回答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、付费专栏及课程。

余额充值