You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用requests.get爬取opencorporates.com无法获取目标HTML页面求助

解决opencorporates.com爬虫无法获取目标HTML的问题

你遇到的问题是因为该网站启用了Cloudflare反爬机制,普通requests.get请求无法通过JS验证环节,所以返回的是生成验证Cookie的脚本,而非目标页面内容。由于不能使用Selenium,推荐用cfscrape库自动处理Cloudflare的JS挑战,无需手动解析JS生成Cookie。

解决步骤:

  1. 安装cfscrape库:
pip install cfscrape
  1. 修改代码,用cfscrape替换requests发起请求:
import cfscrape
from bs4 import BeautifulSoup

company_name = "RI DUDDING LIMITED"

# 创建scraper实例,自动处理Cloudflare验证
scraper = cfscrape.create_scraper()

# 构造搜索URL
search_url = "https://opencorporates.com/companies?q=" + company_name
# 发起带验证的GET请求
response = scraper.get(search_url)

# 解析HTML内容
soup = BeautifulSoup(response.content, 'html.parser')
print(soup.prettify())

# 查找公司信息区块
company_section = soup.find('li', class_='search_result')

if company_section:
    # 提取公司页面URL,补全完整路径
    company_url = company_section.find('a')['href']
    if not company_url.startswith('http'):
        company_url = f"https://opencorporates.com{company_url}"

    # 请求公司详情页
    company_response = scraper.get(company_url)
    company_soup = BeautifulSoup(company_response.content, 'html.parser')

    # 提取目标信息
    company_name = company_soup.find('h1', class_='company_name').text.strip()
    company_address = company_soup.find('span', itemprop='address').text.strip()
    company_status = company_soup.find('dd', class_='entity_status').text.strip()

    # 打印结果
    print("Company Name:", company_name)
    print("Address:", company_address)
    print("Status:", company_status)
else:
    print("Company not found.")

补充说明:

  • cfscrape会自动执行Cloudflare的验证JS,生成有效Cookie后再发起请求,能获取到和浏览器一致的HTML内容。
  • 如果遇到验证失败,可尝试更新cfscrape库,或在创建scraper时添加自定义User-Agent模拟真实浏览器:
scraper = cfscrape.create_scraper(headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'})

内容的提问来源于stack exchange,提问作者Anant Awasthi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 18:40:14