问题参考
python如何去掉字符串‘\xa0’
Python split()方法
Python join()方法
python中join()函数的使用方法
问题背景
使用python对百度网页进行爬取时,爬取的摘要标签中,时间和文章内容在同一标签下,但属于同一标签,抓取的数据本身如果有空格,在编译的时候会输出字符\xa0 ,使用join和split的组合方法去掉
想要爬取目标数据:
使用beautifulsoup的select方法爬取出来的效果如下:
想要的输出的结果:
问题解决
使用join和split的组合方法去掉
- split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
参考网址Python split()方法 - split()方法输出的是列表
a = 'abcv '
a.split() # split方法输出的是列表
- join方法输出的是字符串,刚好配合起来
''.join(i.get_text().split())
# split方法输出的是列表
# join方法输出的是字符串,刚好配合起来
实际代码效果,只截取了片段
# 2 匹配摘要date = soup.select('.c-abstract')
# print(len(date))
# print(date)
# 摘要部分包含了时间,但时间后面带了一个空格,
# 在编译的时候会输出字符\xa0 ,使用join和split的组合方法去掉dict['date'] = [''.join(i.get_text().split()) for i in date]
# print(dict['date'])print('摘要个数:',len(dict['date']))# 3 匹配时间t = soup.select('span[class="newTimeFactor_before_abs c-color-gray2 m"]')
# print(t)dict['time'] = [''.join(i.get_text().split()) for i in t]
# print(dict['time'])print('时间个数:',len(dict['time']))
得到想要的
效果