使用 AutoScraper 简化 Python 网络抓取指南

指南, 搜索, 蟒蛇, May-05-20245 分钟阅读

AutoScraper是一个功能强大的开源 Python 网络抓取库,可简化从网站中提取数据的过程。与需要大量编码才能解析 HTML 内容的传统网络搜刮框架不同,AutoScraper 可以根据您提供的示例自动生成规则,以提取所需的信息。AutoScraper 尤其适合网络搜刮领域的初学者。它的用户友好界面和自动规则生成功能使那些可能没有丰富编码经验的人也能使用它。   

AutoScraper 的主要功能

  • 易于使用:只需几行代码,你就能建立一个只需少量维护的网络搜索器。
  • 高效的数据提取:AutoScraper 的模型可学习网页结构,以适应微小的变化,从而减少频繁调整的需要。
  • 多功能性:它支持各种网站,并可集成到更大的数据管道中。

AutoScraper 快速入门

假设您想抓取一家电子商务商店,而不需要处理 HTML 解析。AutoScraper 可让您在 "wanted_list "中输入产品名称,然后它会自动学习 HTML 结构并自行解析后续产品。

下面有一个清晰的示例来演示这一过程,包括代理的实施:

步骤 1:安装 AutoScraper

首先,您需要安装 AutoScraper。您可以使用 pip.NET 安装 AutoScraper:

from autoscraper importAutoScraper

步骤 3:定义 URL 和通缉名单

指定要抓取的 URL 以及要提取的元素或产品。这样,AutoScraper 就能学习 HTML 结构,并准确解析该框架内的所有类似元素:

url='https://books.toscrape.com/'
wanted_list= [
   "天鹅绒"、
   "Soumission"、
]

步骤 4:制作刮刀

使用 AutoScraper 建立刮擦模型:

    scraper = AutoScraper()
    
    proxies = {
        "http": 'http://test_user112:[email protected]:6060',
        "https": 'http://test_user112:[email protected]:6060',
    }
    #  if you wish to use the same scraper again
    scraper.save('books_to_scrape')
    result = scraper.build(url, wanted_list, request_args=dict(proxies=proxies))
    print(result)

步骤 5:(可选)重复使用之前的刮刀

    scraper=AutoScraper()

   scraper.load('books_to_scrape')

    结果=scraper.get_result(url)

代码生成的输出:

[......"、
翻转天鹅绒 
《Soumission》 
《利器智人:简史......》、 
红色安魂曲》、肮脏的小秘密......》、 
即将到来女人A ...', 
男孩在......》、 
黑色玛丽亚 
饥饿的心(三角贸易......》、 
"莎士比亚十四行诗 
我自由 
"斯科特-皮尔格林的珍贵小......》、 
撕碎它......"、 
我们的乐队可能是......"、 
奥利奥 
Mesaerion:最佳科学......"、 
初学者的自由主义"、 
"这只是喜马拉雅山 
阁楼上灯光 
Sapiens:人类简史》、 
获得梦想工作肮脏小秘密 
即将到来的女人:根据臭名昭著的女权主义者维多利亚-伍德霍尔的生平改编的小说》、 
船上的男孩:九个美国人和他们在1936 年柏林奥运会上争夺金牌的史诗》、 
饥饿的心(三角贸易三部曲第一部)》、 
"斯科特-皮尔格林珍贵的小生命(斯科特-皮尔格林 #1)》、 
撕碎重来》、 
我们的乐队可能是你的生活:1981-1991 美国地下独立音乐场景》、 
Mesaerion:最佳科幻小说 1800-1849]

局限性

  AutoScraper 的主要局限之一是不支持 JavaScript 渲染或动态加载数据。不过不用担心,有一个解决方案!通过使用SeleniumPlaywright 等 Python 库(这些库可以处理动态数据),我们可以抓取 HTML 数据,然后让 Autoscraper 帮我们进行解析。
如果您的目标网站采用了反僵尸保护措施,ProxyScrape ,我们会提供可靠的Web scraping API,帮您处理一切事务,让您的数据收集过程轻松高效。
下面是一个示例,说明如何将我们的 Web scraping API 与 AutoScraper 结合使用:  

import requests
from autoscraper import AutoScraper


def send_request(url_to_scrape):
    api_key = 'your_api_key' 
    data = {
        "url": url_to_scrape,
        "browserHtml": True  # Use browserHtml for JavaScript rendering
    }
    headers = {
        "Content-Type": "application/json",
        "X-Api-Key": api_key
    }

    response = requests.post("https://api.proxyscrape.com/v3/accounts/freebies/scraperapi/request",
                             headers=headers, json=data)

    #  we return the html data that web scraping api extracted
    return response.json()['data']['browserHtml']

if __name__ == '__main__':
    target_url = 'https://books.toscrape.com/'

    # get html data using web scraping api
    html_content = send_request(target_url)

    # parse that html data using AutoScraper
    scraper = AutoScraper()

    wanted_list = [
        "Tipping the Velvet",
        "Soumission",
    ]

    result = scraper.build(wanted_list=wanted_list, html=html_content)

    print(result)

使用 AutoScraper 和代理进行网络抓取的最佳实践

  • 尊重网站服务条款:刮擦前务必查看并遵守网站的服务条款。
  • 使用轮换代理:要避免被检测和速率限制,请使用经常更换 IP 地址的轮换代理。ProxyScrape 提供的轮换住宅代理和移动代理非常适合这一目的。
  • 限制你的请求:在请求之间实施延迟,模仿人类行为,降低被禁言的风险。
  • 监控您的活动:定期检查代理的健康状况和刮擦器的性能,以便快速发现并解决任何问题。
  • 保持更新:随时更新您的搜索脚本和代理列表,以适应网站结构和代理 IP 轮换的变化。

结论

网络刮擦是一种强大的数据采集工具,正确结合AutoScraper和代理服务器,您可以释放其全部潜能。通过集成ProxyScrape 的高级代理,您可以确保您的搜索活动高效、匿名且不间断。我们为您提供了开始使用的必要元素,如果您想更深入地使用 AutoScraper,请查看此要点

准备好提升您的网络搜刮游戏水平了吗?立即使用ProxyScrape 的高级代理开始探索 AutoScraper 的功能。访问 ProxyScrape注册并利用我们最先进的代理解决方案。

如果您需要网络搜刮方面的帮助,请随时加入我们的Discord 频道 ,我们将为您提供支持。

祝您刮得愉快