requests使用案例 爬取信用中国

本文介绍了如何使用requests库爬取信用中国网站上的公司信息。由于网站存在IP限制和服务器稳定性问题,爬取过程中可能遇到挑战。尽管代码较长,但逻辑清晰,适合新手学习爬虫技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

信用中国 获取某公司的所有信息
不过该网站容易被限制ip
而且服务器性能也不好 经常出现各种bug
新手要耐心尝试

信用中国网址:
url = “https://www.creditchina.gov.cn/api/credit_info_search?&templateId=&pageSize=10

需要多层请求爬取

代码有点长 但是代码简单 耐心看能看懂
写博文时 没有进行精简代码!

代码如下:

import requests,json,re,math

proxy = {
   
    "HTTP": "113.3.152.88:8118",
    "HTTPS": "219.234.5.128:3128",
}

headers = {
   
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36',
}

url = "https://www.creditchina.gov.cn/api/credit_info_search?&templateId=&pageSize=10"

keyword = input("输入:")
data = {
   
    "keyword": keyword,
    "page": 1,
}

response = requests.get(url=url,params=data,headers=headers, proxies=proxy)
# print(response.url)
json_data=response.content.decode("utf-8")

total=re.compile(r'totalCount":(\d*?),')
total=total.findall(json_data)

name=re.compile(r'{"name":"(.*?)"',re.M)
name=name.findall(json_data)

encryStr=re.compile(r'"encryStr":"([\w\W]*?)"',re.M)
encryStr=encryStr.findall(json_data)

if total == []:
    print(total)
    print("发生错误,获取不到数据")
    quit()

print("---------开始获取公司信息---------")
print()
for n in range(math.ceil(int(total[0])/10)):
    for k,i in zip(name,encryStr):

        encry=i[0:-2]
        company=k
        print("---------开始获取 " + company+" 公司信息---------")
        #公司信息
        url1="https://www.creditchina.gov.cn/api/credit_info_detail?encryStr=%s"%encry
        response = requests.get(url=url1, params=data, headers=headers, proxies=proxy)
        hotel_data=response.content.decode("utf-8")
        try:
            #公司名称 gs_name
            gs_name=re.findall(r'"entName":"(.*?)"', hotel_data)
            #统一社会信用代码 xinyong
            xinyong=re.findall(r'"creditCode":"(.*?)"', hotel_data)
            #地址 dizhi
            dizhi=re.findall(r'"dom":"(.*?)"', hotel_data)
            #工商注册号 zhuce_id
            zhuce_id = re.findall(r'"regno":"(.*?)"', hotel_data)
            #法人信息 faren
            faren=re.findall(r'"legalPerson":"(.*?)"', hotel_data)
            #成立日期 chengli
            chengli=re.findall(r'"esdate":"(.*?)"', hotel_data)
            #企业类型 type
            type=re.findall(r'"enttype":"(.*?)"', hotel_data)
            #登记机关: dengji
            dengji=re.findall(r'"regorg":"(.*?)"', hotel_data)
            print('公司名称: '+gs_name[0])
            print('统一社会信用代码: '+xinyong[0])
            print('登记机关: '+dengji[0])
            print('企业类型: '+type[0])
            print('成立日期: '+chengli[0])
            print('法人信息: '+faren[0])
            print('工商注册号: '+zhuce_id[0])
            print('地址: '+dizhi[0
虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 虫的工作流程包括以下几个关键步骤: URL收集: 虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反虫机制,虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反虫应对: 由于虫的存在,一些网站采取了反虫措施,如验证码、IP封锁等。虫工程师需要设计相应的策略来应对这些挑战。 虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值