如何从抓取的数据中删除html标签和javascript函数?

恒河

我已经创建了一个抓痒的项目,并且我需要的数据也被抓取了。

但是问题在于,抓取的数据包含很多不需要的东西,例如Javascript函数和其他html标签。如何摆脱它们而只获取数据?

我的testSpider.py代码:

from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import Selector
from testing.items import testingItem

class TestSpider(CrawlSpider):
    name = 'testspider'
    session_id = -1
    start_urls = ["https://www.wikipedia.org/"]
    rules = ( Rule (SgmlLinkExtractor(allow=("", ),),
                callback="parse_items",  follow= True),
    )

    def __init__(self, session_id=-1, *args, **kwargs):
        super(TestSpider, self).__init__(*args, **kwargs)
        self.session_id = session_id

    def parse_items(self, response):
        sel = Selector(response)
        items = []
        item = testingItem()
        item["session_id"] = self.session_id
        item["depth"] = response.meta["depth"]
        # item["current_url"] = response.url
        # referring_url = response.request.headers.get('Referer', None)
        # item["referring_url"] = referring_url
        item["title"] = sel.xpath('//title/text()').extract()
        item["content"]=sel.xpath('content/text()').extract()
        items.append(item)
        return items



    My items.py:

    from scrapy.item import Item, Field

    class testingItem(Item):
        session_id =Field()
        depth = Field()
        current_url=Field()
        referring_url =Field()
        title=Field()
        content=Field()
戈兰

如果无法准确提取所需的内容,则需要创建一些函数或类来为您清除数据,这是分开的一部分。在解析函数中调用它。例如

utils.py

class Cleaner(object):

    def clean_html_tags(data):
        ....
        return data

    def clean_empty_space(data):
        ...
        return data

然后,在解析函数中,您可以使用类似以下内容的代码:

from spider.utils import Cleaner

...

 def parse(self, response):
    item['something'] = Cleaner.clean_html_tags(selector.xpath("//div[@class='myclass']/div/text()").extract())

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何删除被抓取数据的 p 标签

在HTML标签Perl中抓取数据

如何使用 Python 和 BeautifulSoup 从 html 表中抓取数据?

如何抓取不在标签中的网络数据

如何从 JavaScript 中的字符串中删除除 div 和 span 之外的 HTML 标签?

JavaScript函数同步抓取HTML和JS

数据抓取帮助 html 和 javascript

如何从python抓取的数据中删除“ \ n”?

如何删除数据库中的HTML标签?

如何检查和删除字符串中的html标签

如何在Java中从HTML删除<a>标签和链接文本

如何获取和存储变量中的html对象标签的数据值以通过javascript进行比较

从html页面中的Javascript抓取数据

如何从PHP的HTML页面中抓取H2和H3标签?

如何在 html 中删除基础标签使用 javascript?

如何从使用BeautifulSoup抓取的列表中删除标签?

如何从抓取的数据中删除字符为 '\n' 和 'xa0' 但保留空格?

如何删除html标签和head标签之间的iframe标签?

如何抓取不在标签中的网络数据(类名相同)

当 html 中的数据点是动态的时,如何从网站上抓取和保存图表

如何使用BeautifulSoup,Requests和Python从HTML的特定表中抓取数据?

如何使用javascript从html删除脚本标签

使用Regex删除Javascript中的HTML标签

如何使用 Javascript 删除 html 代码中特殊标签前后的标签?

如何使用 selenium 和 python 抓取 div 标签内的标签标签中的文本值?

如何在Java中删除HTML标签

如何从RSS feed中删除HTML标签?

如何从标签外的html中删除文本?

如何删除PHP中的HTML标签?