python爬虫正则表达式匹配为空的问题

在用正则表达式匹配网址信息的时候,经常会匹配到空的列表。这个问题确实很烦,我当初也在这个地方卡了好长时间,所以就打算写一个博客来好好整理一下正则表达式匹配为空的一些状况。
一:选取正则表达式的方式不对
并不建议在网页上按F12然后选中自己想爬的内容,直接写正则表达式,因为网页的源代码和返回给我们请求的html是不一样的,源代码里会夹杂着一些隐含符,/n或者/r/n…要是没有这些隐含符就会导致匹配到空的字符串。
解决办法:在def_analysis(self,htmls):里设置断点,然后进行调试
在这里插入图片描述

圆的为断点,长方形的为调试,等待一会后出现
在这里插入图片描述

然后右边就会出现你匹配到的情况,在里面找到htmls,点view然后把里面的内容复制到一个word文档里,放在word文档里的好处就是不用匹配一个调试一下了,而且可以在word文档里用ctrl+H来进行查找,会方便很多。在这里就可以直接匹配到你想要的内容。

二:你爬取的内容是动态的,返回的html里没有相应的信息,例如京东的价格,评论,这样就不能用正则表达式来匹配,你需要从接口里爬取。
关于从接口里爬取动态的内容,我们到以后在进行讲解。

三:以上两种可能都没有的话,就只有可能你爬的网址有十分强大的反爬虫,就是不让你爬。可以试试更换ip地址,User-Agent,cookies,怎么更ip,user-agent 会在以后再进行讲解

至此,如果你的问题还没有解决,就在下方评论或者私信,那我们就下次再见吧

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值