我可以从以下网站上抓取文本https://scrapsfromtheloft.com/2020/04/25/chris-d-elia-white-male-black-comic-transcript/
我在Jypyter笔记本中使用了以下代码
import requests
import bs4
import pickle
from bs4 import BeautifulSoup
def url_to_transcript(url):
page = requests.get(url).text
soup = BeautifulSoup(page, "lxml")
text = [p.text for p in soup.find(class_="post-content").find_all('p')]
print(url)
return text
urls = ['https://scrapsfromtheloft.com/2020/04/25/chris-d-elia-white-male-black-comic-transcript/']
writer = ['chris']
for i in urls:
transcript=url_to_transcript(i)
print(transcript)
从网站上删除文本后,我使用此代码对文件进行了pickle处理
for i, c in enumerate(writer):
with open("transcripts/" + c + ".txt", "wb") as file:
pickle.dump("transcripts[i]", file)
但是当我检查存储的文本文件时,没有可用的文本Iscraped,而只有这两个单词
我在这里完全是个新手,所以我不确定我做错了什么。我只想让Python打印我从目录中的网站提取的文本。请澄清。谢谢
虽然您的问题没有显示此变量是如何生成的,但假设
transcripts
是一个包含文本的列表列表,则可以在以下输出中看到差异:在第一个调用中,pickle只是pickle文本“transcripts[i]”,而在第二个调用中(不带引号),它将pickle位置
i
中transcript
引用的值请注意,python中没有将单数名称转换为复数的魔力,因此需要显式声明/填充它,如下所示:
如果您的代码没有显式声明
transcripts
,那么用引号将其括起来可以解决NameError
异常,但可能不是您想要的方式相关问题 更多 >
编程相关推荐