有哪些方法可以使相对网址在抓取的内容中保持绝对,以便抓取的html看起来像原始的并且css没有被破坏?
我发现<base>
标签可能有所帮助。但是,如何找出URL的原始基础是什么?
我不关心与链接的交互,但希望它们看起来是正确的。
假设一个网站'example.com/blog/new/i.html'我刮了2个资源
现在,如果我将base设置为'example.com/blog/new/i.html',那么第一个休息时间
答案 0 :(得分:0)
跟踪您抓取的每个网页的网址。一种方法是使用完整的URL作为文件名保存它。然后,您可以根据HTML规范解析相对URL。
答案 1 :(得分:0)
不能说JS,但我可以告诉你如何在 Python中使用BeautifulSoup 或任何其他html解析库。
base_url = 'http://www.Python-The-Bagpiper.com'
content = urlopen(url).read()
soup = BeautifulSoup(content)
img_tags = soup.findAll('img')
link_tags = soup.findAll('link')
a_tags = soup.findAll('a')
#add any other tag with links
for tags in img_tags + link_tags + a_tags:
attr_name = 'src' if tag.get('src') else 'href' if tag.get('href') else None
url = tag.get(attr_name)
if url and 'http://' not in url and url[0] is not '#':
fullurl = base_url + url
tag[attr_name] = fullurl
print soup.prettify