Crossin的编程教室

标题: 【范例:如何正确地提问】为什么抓取到的网页不能去除 \... [打印本页]

作者: crossin先生    时间: 2022-10-9 12:46
标题: 【范例:如何正确地提问】为什么抓取到的网页不能去除 \...
  1. import re

  2. a='<th>得分排名</th>\n\t\t\t\t\t\t<th>推荐排名</th>\n\t\t\t\t\t\t<th>备注</th>\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t'

  3. a1=re.sub(r'\n|\t','',a)
  4. print(a1)
复制代码
上述代码正常,但是我去抓取网站,结果里的 \t \n 就不能去除
代码如下,运行环境 python 3.7 IDLE:
  1. import requests
  2. import re
  3. import sys
  4.    
  5. def get_info(url):
  6.     r=requests.get(url)
  7.     r.encoding='utf-8'
  8.     if r.status_code==200:
  9.         print('获取成功!')
  10.         rs=re.sub(r'\\n|\\t','',r.text)
  11.         print(rs)
  12.     else:
  13.         print('获取失败,请重新尝试!')

  14. url='http://xxxxxxxxxxxxxxxxxxx.cn/?operationEndTime=&selectTimeName=noticeTime'   # 网站不便公开
  15. get_info(url)
复制代码
部分结果如下,print出来里面依然有很多\n\t:
  1. 三、采购结果</strong></h4>\n<div class="noticeBidResult-noticeBidResult _notice_content_noticeBidResult-noticeBidResult supplier" id="_notice_content_noticeBidResult-noticeBidResult">\n\t<div>\n\t\t<p class="u-content"...</span>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</tbody>\n\t\t</table>\n\t</div>\n</div>\n<h4><strong>四、主要标的信息</strong></h4>\n<div class="noticeBidResult-noticeBidResult _notice_content_noticeBidResult-noticeBidResult supplierDetail">\n\t<div>\n\t\t<p class="u-content">合同包1(网络安全设备延保及网络安全三级登记保护测评):</p>\n\t\t<div>\n\t\t\t\n\n\t\t\t<div>\n\t\t\t\t<strong>
复制代码
请问是为什么?怎么能去掉?
1.png
2.png
作者: crossin先生    时间: 2022-10-9 12:47
print出来的字符里面有 \n \t,说明字符串里面是 \\n \\t,不然是看不到的
通过 print(repr(rs)) 查看原始字符串就会发现

所以解决办法就是,把替换 \n \t 改成  \\n \\t





欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5