Python爬虫CSV写入URL反斜杠问题详解及解决方案
在使用Python爬取网页数据并将其写入CSV文件时,URL路径中的反斜杠常常导致显示异常。本文将通过一个案例分析并解决此问题。
问题:爬取的图片URL写入CSV后,出现多余的反斜杠“”,例如“http:\//...”而非预期的“http://...”
原因:代码中对URL路径的处理方式错误。img.get_attribute('bimg').replace('/', r'\/')
试图将所有斜杠“/”替换为转义斜杠“”,但Python中反斜杠本身就是转义字符,需要进行二次转义。
解决方案:采用以下两种方法之一正确处理反斜杠:
使用'\\/'
:四个反斜杠表示一个转义后的反斜杠。
使用原始字符串r'/'
:r
开头的字符串表示原始字符串,其中的反斜杠不会被解释为转义字符,直接表示字面含义。
改进后的代码示例:
import csv # ... (其他代码) ... slider_image = [] for v in slider_images: img = v.find_element_by_css_selector('.tb-pic img') slider_image.append(img.get_attribute('bimg').replace('/', r'/')) # 使用原始字符串 # ... (其他代码) ... with open('output.csv', 'w', newline='', encoding='utf-8') as csvfile: writer = csv.writer(csvfile) # ... (写入数据) ...
注意:读取CSV文件时,Python会自动将/
解释为/
,无需再次进行替换。 通过以上修改,可以确保URL路径在CSV文件中正确显示,避免数据写入错误。