如何解决难题:尝试添加url列失败,因为该url最初用于提取内容
我成功跟随this tutorial(使用python request-html进行解析/抓取)。但是,当我要调整代码以添加包含url的列时,但是后来我意识到我将要使用的类(.question-hyperlink)已经用于解析问题本身。
结果:
尝试:
def parse_tagged_page(html):
question_summaries = html.find(".question-summary")
key_names = ['question','Votes','tags','summary','url']
classes_needed = ['.question-hyperlink','.Vote','.tags','.summary','.question-hyperlink' ]
datas = []
for q_el in question_summaries:
question_data = {}
for i,_class in enumerate(classes_needed):
sub_el = q_el.find(_class,first=True)
keyname = key_names[i]
question_data[keyname] = clean_scraped_data(sub_el.text,keyname=keyname)
datas.append(question_data)
return datas
解决方法
URL包含在href
元素的a
属性中,将sub_el.text
传递给函数clean_scraped_data()
不会有帮助。您可能应该重构此功能:
def clean_scraped_data(el,keyname=None):
if keyname == 'votes':
return el.text.replace('\nvotes','')
elif keyname == 'url':
return f"https://stackoverflow.com{el.attrs['href']}"
return el.text
应相应地调整函数调用:
clean_scraped_data(sub_el,keyname=keyname)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。