Python 如何将html文件的链接更改为本地链接

Python 如何将html文件的链接更改为本地链接,python,html,file,urllib2,urllib,Python,Html,File,Urllib2,Urllib,我正在python 2.7上制作自己的网络爬虫,将网站下载到我计算机中的某个路径,并以与服务器上的网站文件夹类似的方式保存文件,例如: 我会在里面做一个stackoverflow的目录一个问题的目录,在里面这个页面的html文件 如果我的计算机上已经存在我下载的网页,我如何将internet网页的链接更改为我下载的网页的链接 例如,如果有: 因此我将通过python将此html代码更改为 或类似的东西 我不知道它是否有用,但这是我用来下载单个文件的功能: def下载文件(路径、url): 每当

我正在python 2.7上制作自己的网络爬虫,将网站下载到我计算机中的某个路径,并以与服务器上的网站文件夹类似的方式保存文件,例如:

我会在里面做一个stackoverflow的目录一个问题的目录,在里面这个页面的html文件

如果我的计算机上已经存在我下载的网页,我如何将internet网页的链接更改为我下载的网页的链接

例如,如果有:
因此我将通过python将此html代码更改为
或类似的东西

我不知道它是否有用,但这是我用来下载单个文件的功能: def下载文件(路径、url):


每当抓取链接并将页面保存到路径时,请将链接和路径保存到词典

你还需要确定一些事情 1.每个路径对于一个链接来说都是唯一的(有点可选,但我想真的很有用) 2.您没有从其他链接覆盖到该路径中的任何其他页面

然后,在完成爬网之后,需要“手动”(当然,使用一些python代码)编辑下载文件中的链接,以指向文件系统中的文件

通过手动编辑,我的意思是使用一些模块(
re
)来搜索和替换下载文件中的字符串

执行此转换后,将丢失对作为文件原始源的网页的引用

如果您需要保留原始的在线url,只需为每个url提供一个唯一的ID,并将其存储在本地数据库中(当然还有您下载文件的文件系统路径)

如果你自己不能做到这一点,请寻求更多的帮助

[编辑] 使用re模块,您可以执行以下操作

import re

html_file_content = u"asdf 1234 this should contain the source code of a html page that you downloaded"
pattern = u"http://the-url-from-which-you-downloaded-the-html-file.com"
path = u"d:/whatever/path/where/you/downloaded/the/html/file"
new_file_content = re.sub(pattern, path, a)

名称
new\u file\u content
将包含源文件,文件系统路径而不是链接。。。请确保将一个文件://连接到
路径
变量的开头,以便浏览器可以将其识别为有效链接(例如
文件://d:/downloads/python\u crawler
,而不仅仅是
d:/downloads/python\u crawler

,如果我是你,我会用它来代替urlib,你能帮我完成以下部分吗:“使用某些模块(re)”搜索和替换下载文件中的字符串。“我猜're.sub(pattern,path,a)'应该是're.sub(pattern,path,html\u file\u content)'?
import re

html_file_content = u"asdf 1234 this should contain the source code of a html page that you downloaded"
pattern = u"http://the-url-from-which-you-downloaded-the-html-file.com"
path = u"d:/whatever/path/where/you/downloaded/the/html/file"
new_file_content = re.sub(pattern, path, a)