我是新手,而且花了很长时间尝试解决我认为应该是两个简单的问题。
(1)我正在尝试抓取此网站:
具体来说,我正在尝试仅抓取文章的文字(因此,没有图片,标题,标题等)。我正在使用的代码是:
response.css('div.body_1gnLA p::text').extract()
问题在于,在文章的底部,有一个“关于作者”部分被包含在抓取中,我不想这样做。我不需要的特定文本如下:
”在国务院工作了24年的老将彼得·范布伦(Peter Van Buren)是《我们的意思很好:我如何帮助打败伊拉克人民的心灵和胡珀战争:第二次世界大战的小说》的作者日本@WeMeantWell 本文表达的观点不是路透社的观点。”
(2)在文章中,某些文本是超链接的。例如,在第一句话中
“伊拉克总理海德尔·阿巴迪于2017年12月9日宣布击败伊斯兰国”
宣布胜利已超链接。当我使用上面编写的代码进行抓取时,它会给我
“ 2017年12月9日,伊拉克总理Haider al-Abadi主持伊斯兰国”
注意,超链接部分“宣告胜利”丢失了。我怎样才能解决这个问题?我只希望删除整个句子的全文;我不在乎href部分。
非常感谢任何人能提供帮助!
答案 0 :(得分:0)
一种可能的方式:
def parse(self, response):
paragraphs = []
for p in response.xpath('//div[@class="body_1gnLA"]/p'):
p_text = p.xpath( 'string(.)' ).extract_first()
paragraphs.append(p_text)
article = "\n".join(paragraphs)
print(article)