网页抓取域名问题
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
包的创建者)。
我正在使用一个小脚本来抓取一些域链接并生成站点地图。
现在可以用了,相当简单。
但是我需要抓取一个特定的域,出于某种原因这个域不允许我抓取任何东西,它上面有链接,还有一个 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
包的创建者)。