电子邮件地址中特殊字符的名称有问题

2024-06-26 13:09:52 发布

您现在位置:Python中文网/ 问答频道 /正文

在抓取这个page的过程中,下面是我如何得到响应的

In [14]: headers                                                                
Out[14]: 
{'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
 'Host': 'www.lieferando.de',
 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:86.0) Gecko/20100101 Firefox/86.0',
 'Upgrade-Insecure-Requests': 1}

In [15]: url                                                                    
Out[15]: 'https://www.lieferando.de/speisekarte/dreamburger-pizza'

In [16]: fetch(scrapy.Request(url,headers=headers))                             
2021-03-10 16:19:15 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.lieferando.de/speisekarte/dreamburger-pizza> (referer: None)

但问题是,每当我试图提取电子邮件地址时,我都没有得到想要的电子邮件字符串。你可以通过下面的代码了解我的观点

In [18]: email = ''.join(response.css('div:contains("E-Mail")::text').getall()).strip().split('E-Mail')[-1].split(' ')[-1]                            

In [19]: email                                                                                                                                        
Out[19]: 'info&commat;lieferando&period;de'

我想要一封类似于info@lieferando.de的电子邮件,而name字段也会发生同样的情况,即

In [20]: jsn = json.loads(response.css('script[type="application/ld+json"]::text').get())                                                             

In [21]: jsn.get('name')                                                                                                                              
Out[21]: 'Dreamburger &amp; Pizza'

我怎样才能去掉那些特殊的字符名


Tags: textinhttpsurlapplication电子邮件wwwde
1条回答
网友
1楼 · 发布于 2024-06-26 13:09:52

您正在标准库中查找^{},例如

>>> import html 
>>> html.unescape('info&commat;lieferando&period;de')
'info@lieferando.de'
>>> html.unescape('Dreamburger &amp; Pizza')
'Dreamburger & Pizza'

相关问题 更多 >