‘/xad’出现在Python代码中的字符串列表中

问题描述 投票:0回答:1

首先,我是一个初学者,刚刚接触Python中级,所以请耐心等待我解决这个问题的方法。我正在使用 lxml etree 和请求开发一个网络抓取迷你项目(代码位于本段下方)。我想抓取有关当前媒体奇观的网站,并决定以 OOP 方式进行实践(尽管我怀疑这种方式是否适合或实施得很好,对此的反馈将不胜感激),因此我可以重复使用类来抓取同一脚本中的其他页面。这时我注意到,当我尝试从 get_stories() 方法中的

元素检索和打印文本时,“/xad”应该经常出现在奇怪的地方。我无法从互联网上找到任何适合我情况的信息,但我确实找到了一些与编码/解码和 unicode 有关的东西,我不太熟悉。当原始 html 转换为元素文本属性时,可能存在编码/解码问题?但正如我所说,这超出了我的能力范围,非常感谢对我的代码和问题的建设性反馈。谢谢!

from lxml import etree
import requests

class Page:
    
    headers = {"User-Agent" : "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0"}

    def __init__(self, url):
        try:
            self.html = requests.get(url, headers=Page.headers).text 
            self.tree = etree.HTML(self.html)
            self.articles = dict()
            self.var = None
        except:
            raise SystemExit("Invalid url")

    def get_stories(self):
        headers = [span.text for span in self.tree.xpath('//a[@class="u-clickable-card__link"]//span')]
        snippets = [span.text for span in self.tree.xpath('//div[@class="gc__excerpt"]//p')]
        print(headers)
       

url = "https://www.aljazeera.com/tag/julian-assange/"

page1 = Page(url)
page1.get_stories()

这是输出:

[“观点:如果 Ju\xadlian As\xadsange 是 ex\xadtra\xaddit\xaded,他会发生什么?”,“Ju\xadlian As\xadsange 的三\xadals:死亡感\xadtence democ\xadra\xadcy', '美国律师敦促英国法院阻止 Ju\xadlian As\xadsange ex\xadtra\xaddi\xadtion ap\xadpeal 出价', 'His\xadto\xadry Il\xadlus\xadtrat\xaded: Ju\ xadlian As\xadsange 的最后立场?', 'Wik\xadiLeaks 创始人 Ju\xadlian As\xadsange 做出固定报价以避免 ex\xadtra\xaddi\xadtion 到美国', '为什么美国想要 Ju\xadlian As\xadsange ex\xadtra\xaddit\xaded?', 'Ju\xadlian As\xadsange 是谁?他会被驱逐到美国吗?', '够了': 澳大利亚总理宣布美国、英国对 As\xadsange 提出诉讼', '澳大利亚法律\xadmak\xaders 按 US en\xadvoy for Ju\xadlian As\xadsange re\xadlease', 'Ju\xadlian As\xadsange 的 fu\xadture 持有什么?', 'Ju 的 Im\xadpris\xadon\xadment \xadlian As\xadsange', 'Chi\xadna 的抗议:空白纸讲述了一个故事', '顶我\xaddia \xadlets de\xadmand US end pro\xade\xadcu\xadtion of Ju\xadlian As\xadsange' ,“在新书中,jour\xadnal\xadist 为 Ju\xadlian As\xadsange 提供了理由”]

python python-3.x lxml elementtree python-requests-html
1个回答
1
投票

十六进制代码

0xad
,在文本中呈现为
\xad
,是软连字符的 Unicode 代码点。

这是为了让格式化程序能够轻松地找出在需要分割文本时可以在哪里放置连字符。例如在非常薄的显示设备上:

The Take: What will happen to Ju-

lian Assange if he is extradited?

© www.soinside.com 2019 - 2024. All rights reserved.