首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >解析器BS4写入文件

解析器BS4写入文件
EN

Stack Overflow用户
提问于 2019-05-09 00:04:27
回答 1查看 54关注 0票数 0

我正在学习蟒蛇,有一个任务。我必须将抓取结果写入文件,但其中有一些错误。结果文件中的每个字符串都是"None",但是当我将这样的结果输出到console时,它可以正常工作。

在函数takeText中

代码语言:javascript
复制
def takeText(self,nameArticleFile):
        x=input("Введите слово по которому нужно отыскать статьи\n")
        for titlesearch in self.soup1.findAll('item'):
            if titlesearch.find(string=re.compile(x)):
                self.zagsearch.append(titlesearch.find(string=re.compile(x)))
                self.urlsearch.append(titlesearch.find('guid',text=True))
        print('Статьи в которых есть вхождение слова:')
        for s in range(len(self.zagsearch)):
            print(self.zagsearch[s].string)
        print('Ссылки на статьи в которых найдено слово:')
        for a in range(len(self.urlsearch)):
            print(self.urlsearch[a].string)
        for b in range(len(self.urlsearch)):
            self.response1=urllib.request.urlopen(self.urlsearch[b].string)
            self.soup2=BeautifulSoup(self.response1.read())
            with open(nameArticleFile, "w") as file:
                for i in self.soup2.findAll('p'):
                    file.write(str(self.searchP.append(i)))
            for i in range(len(self.searchP)):
                print(self.searchP[i].string)
EN

回答 1

Stack Overflow用户

发布于 2019-05-09 03:37:38

append()始终返回None,因此write(...append())表示write(None)

您必须编写i (或i.string),而不是append(i)

代码语言:javascript
复制
with open(nameArticleFile, "w") as file:
    for i in self.soup2.findAll('p'):

        # display and write `i`
        print(i.string)
        file.write(i.string)

        # add to list
        self.searchP.append(i)

        # or  display and write last item from list
        #print(self.searchP[-1].string)
        #file.write(self.searchP[-1].string)

在Python中,我们使用range(len(self.searchP))而不是

代码语言:javascript
复制
for item in self.searchP:
     print(items.string)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56044821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档