如何使用搜索栏抓取网站

数据挖掘 数据挖掘 爬行
2021-09-18 11:15:16

我如何抓取一个基本上看起来像谷歌的网站,屏幕中间只有一个巨大的搜索栏。您可以从中搜索各种公司及其统计数据。

我有一份我想获取信息的 1000 家公司的列表。我想要一些机器人从我的搜索栏中的列表中搜索每家公司,打开特定公司的信息窗口并提取每个公司每个页面上存在的特定公司代码。

有没有简单且(当然)合法的方式来做到这一点?

4个回答
  1. 我建议阅读有关 http 查询方法的信息,特别是有关 GET 和 POST 的信息。您可以通过查询传递参数并直接打开公司页面。

    例如:

    http://google.com/search?q=GET+and+POST

    其中 (q=GET+and+POST) 是一个参数。

  2. 一旦你有了页面,你就可以用你最喜欢的库来解析它。(例如美丽的汤)

例子:

使用 python 3 和 beautifulsoup 从几个谷歌查询中获取结果数量:

from bs4 import BeautifulSoup
import urllib.request

# List with google queries I want to make
desired_google_queries = ['Word' , 'lifdsst', 'yvou', 'should', 'load', 'from']

for query in desired_google_queries:
    # Constracting http query
    url = 'http://google.com/search?q=' + query
    # For avoid 403-error using User-Agent
    req = urllib.request.Request(url, headers={'User-Agent' : "Magic Browser"})
    response = urllib.request.urlopen( req )
    html = response.read()
    # Parsing response
    soup = BeautifulSoup(html, 'html.parser')
    # Extracting number of results
    resultStats = soup.find(id="resultStats").string
    print(resultStats)

我建议结合使用 rvest 和 rselenium,具体取决于网页的设置方式。

  • Rselenium导航页面(如果需要)
  • Rvest从页面中抓取数据

以下是一些具有免费积分或免费试用的刮板

https://www.scraping-bot.io

https://www.scrapingbee.com/

https://www.scraperapi.com/

https://www.octoparse.com/

还有一些优秀的公司会为每个客户创建具有单独参数的刮板。

https://www.zyte.com/

https://apify.com/

https://data-ox.com/

https://www.diffbot.com/

谢谢大家,但我找到了一个名为 Mozenda 的程序,即使像我这样的白痴也能理解 :) 你基本上点击搜索栏,导入你想要搜索的东西的 Excel 列表,然后只需点击你想要提取的数据字段。