Python 解析受bot保护的站点
我正在尝试解析网站“https://ih.advfn.com/stock-market/NYSE/gen-electric-GE/stock-price并从董事会提取其最新信息。它受云flare的bot保护。我正在使用python及其相关库,这就是我目前所拥有的Python 解析受bot保护的站点,python,parsing,web-scraping,Python,Parsing,Web Scraping,我正在尝试解析网站“https://ih.advfn.com/stock-market/NYSE/gen-electric-GE/stock-price并从董事会提取其最新信息。它受云flare的bot保护。我正在使用python及其相关库,这就是我目前所拥有的 from bs4 import BeautifulSoup as soup #parses/cuts the html import cfscrape import requests url = 'https://ih.advfn.c
from bs4 import BeautifulSoup as soup #parses/cuts the html
import cfscrape
import requests
url = 'https://ih.advfn.com/stock-market/NYSE/gen-electric-GE/stock-
price'
r=requests.get(url)
html = soup(r.text, "html.parser")
containers = html.find("div",{"id":"bbPosts"})
print(containers.text.strip())
我无法使用html解析器,因为网站会检测并阻止我的脚本。
我的问题是:
如何解析网页以提取表数据
请允许我提一下,这是我参加的安全课程。我没有出于恶意原因使用此功能。有多种绕过站点保护的方法。你必须清楚地看到他们是如何阻止你的 阻止请求的一种常见方法是查看
用户代理
头。客户端(在您的情况下是请求
库)将通知服务器它的身份
一般来说,浏览器会说我是浏览器
,而图书馆会说我是图书馆
。然后服务器可以说我允许浏览器而不是库访问我的内容
但是,对于这种特殊情况,您可以通过发送自己的用户代理
头向服务器撒谎
你可以在这里看到一个。尝试使用浏览器用户代理
其他阻塞技术包括ip范围。绕过此问题的一种方法是通过vpn
。是最容易设置的vpn
之一。只需在amazon上启动一台机器,让这个容器运行即可
除此之外,您还可以尝试访问未呈现在服务器端的单页应用程序。在本例中,您应该通过该get
请求接收一个非常小的html文件,它基本上引用了一个javascript文件。如果是这种情况,您需要的是一个实际的浏览器,您可以通过编程控制它。我建议你看看其他的。你也可以使用
网络爬行是一个美丽但非常深刻的主题。我认为这些指针应该给你指明正确的方向
另外,简单地说,我的建议是避免从bs4导入
作为汤。我建议你不要。或者说你不应该。如果一个网站正致力于反刮取机器人,这意味着他们不希望人们刮取他们的数据。如果他们不提供API,不要在他们不知情的情况下刮掉他们的网站。至于你的问题,在这个网站上要求一个教程是离题的。你怎么知道它会阻止你的脚本?你怎么知道它不起作用了?它可能运行了一些javascript。你需要这样的东西。我不会把它用在任何项目上。我将此用于实践。我希望熟悉机器人检测和预防的概念@MoonigraWrit似乎在使用Angular的数据绑定,我建议您尝试另一种方法,比如拍摄网站快照