Python Scrapy:在scrape中排除一些文本

Python Scrapy:在scrape中排除一些文本,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,我是个新手,花了很多时间试图解决我认为应该是两个简单的问题 (1) 我正在尝试删除此网站: 具体地说,我只是想抓取文章的文本(所以没有图片、标题、标题等等)。我使用的代码是: response.css('div.body_1gnLA p::text').extract() 问题是,在文章的底部,有一个“关于作者”的部分,我不想让它包含在草稿中。我不想要的具体文本如下: “彼得·范布伦(Peter Van Buren),一位24岁的国务院老兵,是《我们的好意:我如何帮助伊拉克人民输掉这场战争》

我是个新手,花了很多时间试图解决我认为应该是两个简单的问题

(1) 我正在尝试删除此网站:

具体地说,我只是想抓取文章的文本(所以没有图片、标题、标题等等)。我使用的代码是:

response.css('div.body_1gnLA p::text').extract()
问题是,在文章的底部,有一个“关于作者”的部分,我不想让它包含在草稿中。我不想要的具体文本如下:

“彼得·范布伦(Peter Van Buren),一位24岁的国务院老兵,是《我们的好意:我如何帮助伊拉克人民输掉这场战争》和《霍珀战争:二战日本小说》的作者。@WeMeantWell 本文所表达的观点并非路透社新闻。”

(2) 在这篇文章中,有些文本是超链接的。例如,在第一句话中

“2017年12月9日,伊拉克总理海德尔·阿巴迪宣布战胜伊斯兰国”

宣布的胜利是超链接的。当我使用上面编写的代码进行刮取时,它会给我

“2017年12月9日,伊拉克总理海德尔·阿巴迪就伊斯兰国问题发表讲话”

请注意,缺少超链接部分“宣布胜利”。我怎样才能解决这个问题?我只想把整句话的内容删去;我不在乎那部分

如果有人能帮忙,我将不胜感激

一种可能的方法:

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)