网页抓取域名问题

Web crawling domain issue

我正在使用一个小脚本来抓取一些域链接并生成站点地图。

现在可以用了,相当简单。

但是我需要抓取一个特定的域,出于某种原因这个域不允许我抓取任何东西,它上面有链接,还有一个 sitemap.xml 文件。

我想这一定有一些 robots.txt 或任何其他服务器端技巧,假设是这种情况,抓取它的解决方法是什么?

我考虑过阅读站点地图 xml 文件并将其写在某个地方,但是哈哈,这个想法有点奇怪。

This 是域名。

这是代码,虽然现在可以正常工作,但对于其他域:

import urllib.request as urllib2
from bs4 import BeautifulSoup

myurl = "https://www.google.com/"
url = urllib2.urlopen(myurl)

soup = BeautifulSoup(url,'html.parser')

all_links = soup.find_all('a')

for link in all_links:
    print(link.get('href'))

有任何 idea/workaround 吗?

非常感谢

您无法使用脚本获取任何内容的原因是该网站是用 React 编写的,这意味着链接正在填充 Javascript。为了抓取此类网站,您需要使用能够执行嵌入式 Javascript 代码的工具。您可以使用类似 Selenium or requests-html 的东西(来自著名的 requests 包的创建者)。