将 html 保存到文件中,以便稍后使用 Beautiful Soup
Save html to file to work with later using Beautiful Soup
我正在用 Beautiful Soup 做很多工作。但是,我的主管不希望我通过网络“实时”完成工作。相反,他希望我从网页上下载所有文本,然后再处理。他想避免在网站上重复点击。
这是我的代码:
import requests
from bs4 import BeautifulSoup
url = 'https://scholar.google.com/citations?user=XpmZBggAAAAJ'
page = requests.get(url)
soup = BeautifulSoup(page.text, 'lxml')
我不确定是否应该将“page”保存为文件然后将其导入 Beautiful Soup,或者我是否应该将“soup”保存为文件以便稍后打开。我也不知道如何以一种可以像从互联网上“实时”访问的方式将其保存为文件。我对Python几乎一无所知,所以我需要绝对最简单的过程。
所以节省汤会……很难,而且根据我的经验(如果有兴趣,请阅读更多关于 pickle
ing 过程的信息)。您可以按如下方式保存页面:
page = requests.get(url)
with open('path/to/saving.html', 'wb+') as f:
f.write(page.content)
然后以后要分析的时候:
with open('path/to/saving.html', 'rb') as f:
soup = BeautifulSoup(f.read(), 'lxml')
反正就是这样。
以下代码遍历 url_list
并将所有响应保存到列表 all_pages
中,该列表存储到 response.pickle
文件中。
import pickle
import requests
from bs4 import BeautifulSoup
all_pages = []
for url in url_list:
all_pages.append(requests.get(url))
with open("responses.pickle", "wb") as f:
pickle.dump(all_pages, f)
稍后,您可以加载此数据,“简化”每个响应并根据需要执行任何操作。
with open("responses.pickle", "rb") as f:
all_pages = pickle.load(f)
for page in all_pages:
soup = BeautifulSoup(page.text, 'lxml')
# do stuff
我正在用 Beautiful Soup 做很多工作。但是,我的主管不希望我通过网络“实时”完成工作。相反,他希望我从网页上下载所有文本,然后再处理。他想避免在网站上重复点击。
这是我的代码:
import requests
from bs4 import BeautifulSoup
url = 'https://scholar.google.com/citations?user=XpmZBggAAAAJ'
page = requests.get(url)
soup = BeautifulSoup(page.text, 'lxml')
我不确定是否应该将“page”保存为文件然后将其导入 Beautiful Soup,或者我是否应该将“soup”保存为文件以便稍后打开。我也不知道如何以一种可以像从互联网上“实时”访问的方式将其保存为文件。我对Python几乎一无所知,所以我需要绝对最简单的过程。
所以节省汤会……很难,而且根据我的经验(如果有兴趣,请阅读更多关于 pickle
ing 过程的信息)。您可以按如下方式保存页面:
page = requests.get(url)
with open('path/to/saving.html', 'wb+') as f:
f.write(page.content)
然后以后要分析的时候:
with open('path/to/saving.html', 'rb') as f:
soup = BeautifulSoup(f.read(), 'lxml')
反正就是这样。
以下代码遍历 url_list
并将所有响应保存到列表 all_pages
中,该列表存储到 response.pickle
文件中。
import pickle
import requests
from bs4 import BeautifulSoup
all_pages = []
for url in url_list:
all_pages.append(requests.get(url))
with open("responses.pickle", "wb") as f:
pickle.dump(all_pages, f)
稍后,您可以加载此数据,“简化”每个响应并根据需要执行任何操作。
with open("responses.pickle", "rb") as f:
all_pages = pickle.load(f)
for page in all_pages:
soup = BeautifulSoup(page.text, 'lxml')
# do stuff