Python靓汤和Regex双引号不被替换

2024-04-25 13:51:43 发布

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

我正在尝试使用beauthoulsoup和Regex来抓取this website。在这样做的时候,我遇到了一个有“双引号”的问题,我想替换“双引号”并将其保存为.txt文件。但它并没有取代“双引号”。我们尝试了.replace()方法,但失败了。代码如下:

url = 'http://www.sanfoundry.com/operating-system-mcqs-process-scheduling-queue/'
r = requests.get(url)
soup = bs(r.content)
data = soup.find_all('div', {'class':'entry-content'})
data1 = data[0].text
pattern = r'^\d{1,2}[\.|\)]([\s|\S].*)|(^[a-z]\)\s.*)|^View Answer\s?(Answer:.*)'
#pattern = r'^\d{1,2}[\.|\)]\s*(.*)|(^[a-z]\)\s.*)|^View Answer\s?(Answer:.*)'
reg = re.compile(pattern)
#with open(r'C:\Users\dhvani\Google Drive\Python\Data Scraping\byb.txt', 'a') as f:
with open(r'C:\Users\Jeri_Dabba\Google Drive\Python\Data Scraping\byb.txt', 'a') as f:

    for i in data1.split('\n'):
        if reg.search(i).group(1):
           y = reg.search(i).group(1)
           y = y.replace('"', '')
           f.write(y + "\n")

当我检查.txt文件时,“双引号”没有被替换。有什么问题吗?在

我是python新手。在


Tags: 文件answertxtviewurldatawithopen
2条回答

此网站包含非“正常”双引号字符的字符,即非"U+0022

该站点包括左右双引号unicodeU+201C和U+201D

您可以替换这些:

y = y.replace('"', '')
y = y.replace('“', '')
y = y.replace('”', '')

我看了一眼你想搜刮的网站。 “Blocked”是否是您要替换的双引号的示例?如果是这样,看看我自己的报价和我从网站上复制粘贴的报价之间的差异。他们不是同一个角色。在

您应该复制/粘贴或查找要替换的标点符号的代码,因为对于一个符号,web上有各种各样的字符,python会在“and”和“and”之间产生差异。在

因此,您应该有类似于:

y = y.replace('“', '');
y = y.replace('”', '');

因为这可能不是标点符号的唯一问题,我建议您用所有要替换的内容创建一个数组,然后在该数组上循环。在

相关问题 更多 >