首页 > 其他分享 >4、爬虫脚本采集中科商务网区域工商信息

4、爬虫脚本采集中科商务网区域工商信息

时间:2023-12-05 16:48:01浏览次数:28  
标签:url 商务网 list 爬虫 re 中科 数据 findall datas

1、需求:采集中科商务网区域工商信息
2、需求数据字段:
  '名称': [title],'摘要': [content],'联系人': [lx_b],'联系电话': [tel],'电子邮件': [email],'公司地址': [address],'法定代表人': [fr],'经营状态': [state],'注册资本': [zczb],'统一社会信用代码': [tyshxdm],'纳税人识别号': [nsrsbh],'工商注册号': [gszch],'组织机构代码': [zzjgdm],'成立日期': [clrq],'公司类型': [type],'行政区划': [xzqh],'注册地址': [zc_add],'经营范围': [range]
3、例图数据如下:

 4、思路分析

  控制台查看关键信息:

  页面请求返回的数据是- Content-Type:text/html; charset=utf-8

  请求 URL:http://www.zk71.com/zhejiangqiye/wenzhou/page1/

   请求方法:GET

 页面数据一共是57904条,那就先获取总页数做字符串拼接

url1=f"http://www.zk71.com/zhejiangqiye/wenzhou/page{m}/"  m的值是1-2068页

 获取到了所有项的超链接url就可以对数据进行请求获取页面的详细数据。

 获取所有url并将所有数据存到一个空list表中,然后再调用list表中的url请求数据

 requests请求数据这里用的是正则匹配的

#详细代码如下:
import requests import re import pandas as pd import time import random from lxml import etree url='http://www.zk71.com/zhejiangqiye/wenzhou/' #设置请求头agent池随机获取 user_agent = [ "Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50", "Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2 ", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36", ] header={ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", "Accept-Encoding": "gzip, deflate", "Accept-Language": "zh-CN,zh;q=0.9", "Cache-Control": "max-age=0", "Connection": "keep-alive", "Cookie": "td_cookie=932577139; td_cookie=870182477; Hm_lvt_2de4d2592c7d7a7193a646ad89b38990=1701662492; Hm_lvt_924b27f6bedcf9533ec0e580c51baf2e=1701664739; Hm_lpvt_924b27f6bedcf9533ec0e580c51baf2e=1701664760; Hm_lpvt_2de4d2592c7d7a7193a646ad89b38990=1701735836", "Host": "www.zk71.com", "Upgrade-Insecure-Requests": "1", "User-Agent": random.choice(user_agent) } datas=requests.get(url,headers=header).text #获取总页数,做翻页操作 pages=re.findall(r'>下页</a><a class="pager" href="/zhejiangqiye/wenzhou/page(.*?)/">末页</a>',datas,re.S)[0] i=int(pages) # 创建一个空表存储数据 all_data = [] url_list=[] for m in range(1,i+1): url1=f"http://www.zk71.com/zhejiangqiye/wenzhou/page{m}/" print(f"----------当前正在采集第{m}页数据----------") page_datas=requests.get(url1,headers=header).text #获取数据的url2 url2=re.findall(r'<b><a id=".*?" href="(.*?)" target="_blank">.*?</a></b><span>.*?</span>',datas,re.S) for url in url2: #url拼接获取每条数据的超链接 url="http://www.zk71.com/"+url url_list.append(url) # print(url_list) #遍历所有url获取页面数据 for j in range(len(url_list)): url=url_list[j] #列表有数据不合规 try: # 获取页面数据 datas = requests.get(url, headers=header).text # title标题 title = re.findall(r'<title>(.*?)</title>', datas, re.S)[0] # content简介 content = re.findall(r'p class="p_cs_text">(.*?)<a class="fold-btn" id="show">展开</a> ', datas, re.S)[0] # 联系人lx_b lx_b = re.findall(r'<li><p><span>联系人:</span>(.*?)</p></li>', datas, re.S)[0] # 联系电话tel tel = re.findall(r'<li><p><span>联系电话:</span>(.*?)</p></li>', datas, re.S)[0] # 电子邮件email email = re.findall(r'<li><p><span>电子邮件:</span>(.*?)</p></li>', datas, re.S)[0] # 公司地址address address = re.findall(r'<li style="width:95%;"><p><span>公司地址:</span>(.*?)</p></li>', datas, re.S)[0] # 法定代表人fr fr = re.findall(r'<li><p><span>法定代表人</span>(.*?)</p></li>', datas, re.S)[0] # 经营状态state state = re.findall(r'<li><p><span>经营状态</span>(.*?)</p></li>', datas, re.S)[0] # 注册资本zczb zczb = re.findall(r'<li><p><span>注册资本</span>(.*?)</p></li>', datas, re.S)[0] # 统一社会信代码tyshxdm tyshxdm = re.findall(r'<li><p><span>统一社会信用代码</span>(.*?)</p></li>', datas, re.S)[0] # 纳税人识别号nsrsbh nsrsbh = re.findall(r'<li><p><span>纳税人识别号</span>(.*?)</p></li>', datas, re.S)[0] # 工商注册号gszch gszch = re.findall(r'<li><p><span>工商注册号</span>(.*?)</p></li>', datas, re.S)[0] # 组织结构代码zzjgdm zzjgdm = re.findall(r'<li><p><span>组织机构代码</span>(.*?)</p></li>', datas, re.S)[0] # 成立日期clrq clrq = re.findall(r'<li><p><span>成立日期</span>(.*?)</p></li>', datas, re.S)[0] # 公司类型type type = re.findall(r'<li><p><span>公司类型</span>(.*?)</p></li>', datas, re.S)[0] # 行政区划xzqh xzqh = re.findall(r'<li><p><span>行政区划</span>(.*?)</p></li>', datas, re.S)[0] # 注册地址zc_add zc_add = re.findall(r'<li style="width:99%;"><p><span>注册地址</span>(.*?)</p></li>', datas, re.S)[0] # 经营范围range range = re.findall(r' <li style="width:99%; overflow:hidden;"><p><span style=" height:74px; line-height:74px;">经营范围</span><em>(.*?)</em></p></li>',datas, re.S)[0] # 创建一个Pandas DataFrame来存储数据 data_dict = { '名称': [title], '摘要': [content], '联系人': [lx_b], '联系电话': [tel], '电子邮件': [email], '公司地址': [address], '法定代表人': [fr], '经营状态': [state], '注册资本': [zczb], '统一社会信用代码': [tyshxdm], '纳税人识别号': [nsrsbh], '工商注册号': [gszch], '组织机构代码': [zzjgdm], '成立日期': [clrq], '公司类型': [type], '行政区划': [xzqh], '注册地址': [zc_add], '经营范围': [range] } df = pd.DataFrame(data_dict) # 添加延时,参数为秒。 time.sleep(2) all_data.append(df) # 合并所有数据DataFrame final_df = pd.concat(all_data, ignore_index=True) # 保存到Excel文件 final_df.to_excel('温州黄页数据源信息.xlsx', index=False) print(f'爬取第{j}数据入EXCEL执行完毕') except requests.exceptions.RequestException as e: print(f"Error processing {url}: {e}")

存在问题:页面加载返回数据较慢,这里也设置了2秒的时延。由于是requests请求的,单线程进度慢。采集5万多条数据大概一天。

运行截图:

 

标签:url,商务网,list,爬虫,re,中科,数据,findall,datas
From: https://www.cnblogs.com/lvjing/p/17877590.html

相关文章

  • 用 Python 开发网络爬虫提高数据采集效率
    随着互联网的快速发展,数据采集成为了各行各业中不可或缺的一环。而Python作为一种功能强大且易于学习的编程语言,被广泛应用于网络爬虫开发。本文将介绍使用Python开发网络爬虫的优点,并探讨如何利用Python提高数据采集效率。1.强大的库和工具支持:Python拥有许多强大的库和工具,如Beau......
  • 代理IP、Socks5代理与爬虫在跨界电商与游戏领域的网络安全应用
    的数据挖掘,企业可以及时调整战略,把握市场机会,实现更好的出海业务。2.游戏领域的爬虫应用在游戏领域,爬虫技术可以用于收集游戏数据、用户行为等信息,为游戏运营提供有力支持。同时,通过分析玩家反馈、游戏流行趋势,游戏开发者可以及时优化产品,提高用户满意度。网络安全:保障跨界电商与......
  • 爬虫之下载青春有你第二季图片
    爬虫之下载青春有你第二季图片工具:PyCharm2022.2.4  python版本:3.9,一个很好的练手项目 1、写一个python类并方法如下  注意:里面的路径要根据自己实际情况,写成自己的importrequestsfrombs4importBeautifulSoupimportosimportdatetimeimportjson......
  • 使用ASIRequest库进行Objective-C网络爬虫示例
    使用ASIRequest库进行Objective-C网络爬虫示例在Objective-C中,ASIHTTPRequest是一个非常受欢迎的库,用于处理HTTP请求。它可用于下载网页内容,处理API请求,甚至进行复杂的网络交互。下面是一个简单的示例,展示了如何使用ASIHTTPRequest库来爬取网页代码。首先,你需要在你的项目中导入ASI......
  • Python爬虫异步与缓存技巧浅析
    Python爬虫异步与缓存技巧浅析在Python爬虫中,异步和缓存是两个非常重要的概念。异步可以显著提高爬虫的效率,而缓存则可以帮助我们避免重复抓取网页,节省时间和资源。一、异步爬虫Python的异步爬虫通常使用asyncio库来实现。这个库提供了异步I/O、事件循环、协程和任务等功能。下面是......
  • Python爬虫完整代码模版——获取网页数据的艺术
    Python爬虫完整代码模版——获取网页数据的艺术在当今数字化世界中,数据是价值的源泉。如何从海量数据中提取所需信息,是每个数据科学家和开发者必须面对的问题。Python爬虫作为一种自动化工具,专门用于从网站上抓取数据。本文将提供一个Python爬虫的完整代码模板,并配以插图,帮助读者理......
  • 爬虫的奇技淫巧之ajax-hook
    声明本文仅供学习参考,如有侵权可私信本人删除,请勿用于其他途径,违者后果自负!前言随着反爬力度的不断升级,现在的爬虫越来越难搞了。诸如加密参数sign、signature、token。面对这种情况传统的方式可以使用自动化程序,如selenium、pyppeteer等。但是使用自动化工具会有很多特征能够被......
  • 无涯教程-Python爬虫 - 处理图像和视频
    Web抓取通常涉及下载,存储和处理Web内容,在本章中了解如何处理从Web下载的内容。无涯教程在抓取过程中获得的网络媒体内容可以是图像,音频和视频文件,以及非网页形式的数据文件。但是,能否信任下载的数据,尤其是将要下载并存储在计算机内存中的数据扩展名?这使得了解将要本地存储的数......
  • 【Python爬虫】第13篇:scrapy项目配置和数据获取。从0到scrapy高手笔记(附代码,可自取)
    本文主要学习一下关于爬虫的相关前置知识和一些理论性的知识,通过本文我们能够知道什么是爬虫,都有那些分类,爬虫能干什么等,同时还会站在爬虫的角度复习一下http协议。全套笔记和代码自取地址:请移步这里感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~共8章,37子模块scrapy爬......
  • 无涯教程-Python爬虫 - 数据处理
    在前面的章节中,无涯教程学习了有关通过各种Python模块从网页中提取数据或进行网页抓取的知识。在本章中研究各种技术来处理已抓取的数据。要处理已抓取的数据,必须将数据以特定格式存储在本地计算机上,例如电子表格(CSV),JSON或有时存储在MySQL等数据库中。CSV和JSON数据处理首先......