首先,有一个python脚本来获取xpath树和给定url的漂亮的soup。

# get tree
def get_tree(url):
    r = requests.get(url)
    tree = html.fromstring(r.content)
    return tree

# get soup
def get_soup(url):
    r = requests.get(url)
    data = r.text
    soup = BeautifulSoup(data)
    return soup

我们经常需要tree和soup来导航源代码页并提取我们需要的有用信息。但我们可能经常会有错误,然后修复它,或者我们改变主意,我们真正需要什么样的信息因此,在这个意义上,序列化soup和xpath树可能是一个好主意,我们只能提前一次。
但是我们如何在python中序列化漂亮的soup和xpath树呢?
有数据库可以存储soup或tree对象吗如果没有,是否有示例代码来手动序列化它们?
谢谢

最佳答案

我从您的问题中了解到,您希望存储soup变量,以便在调试时不必一遍又一遍地请求url似乎您不知道可以序列化任何对象的python pickle module。它并不是没有问题,但是为了您的调试需要,它可以帮助您,而且非常简单。

import pickle
pickle.dump(soup, open("soup.pickle","w"))
# then when you need to load the soup again
soup = pickle.load(open("soup.pickle","r"))

现在你给自己准备了泡菜汤!:天

关于python - 在python中序列化 BeautifulSoup 和xpath树,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26954865/

10-15 17:42