求助关于Python爬虫的问题
第一个问题:就是爬取下来的数据如何获取里面的信息?[<a href="/chuzu/1_61305057_-1.htm" target="_blank" title="朝阳望京方舟苑147平方米 3室1厅2卫">朝阳望京方舟苑147平方米 3室1厅2卫</a>]
我想获取里面红色部分的内容,其次获取蓝色部分的又应该怎么获取?
for i in range(1,2):
time.sleep(1)
a = soup.select('#rentid_D09_0{}_02 > a'.format(i))
print(a.string)
试过a.get_text()、a.text、a.string都不行,有没有大佬告诉我如何解决?
第二个问题:爬取过程中出现了反爬机制,观察到了里面的规律,就是爬5次都会出现返回错误,第6次的时候才会返回响应,应该要怎么处理这种情况??
有没有机制可以设置爬取次数,第6次的时候获取响应内容?
都是这种格式的话 ,你可以用正则来匹配呀 先打印出response.text,看看你要的数据打印出来没,打印出来的话,试试用xpath和正则。
第二个问题,用try - expect捕获异常就好了 1,选择器表达式错误,参考xpath语法;
2,反爬机制,注意headers参数,以及更换ip 第一a['tiltle']获取蓝色部分,a.get_text()获取红色
第二你可以对请求状态码做个判断
第三可以的话最好把代码贴出来 问题1:方法有很多,你看你擅长那个库。问题2:这是你自己的逻辑实现呀 反扒可能是访问太快了吧,试着加time.sleep(1)延迟1秒 感谢各位大佬的帮忙,第一个问题已经解决了
第二个出现了一下反爬情况:
<script type="text/javascript" src="https://cache101.ic.net.cn/media/javascript/q.js?v=1616807238"></script><script type="text/javascript" src="https://cache101.ic.net.cn/media/javascript/w.js?v=1616807238"></script><script type="text/javascript">var rind="xajgxs=GtaRLNR;g\"ds";var rnns//@$%%&*(3746)(&(^%^
/*
bBtdze\"=""*/="4UZ"
;//ashjgfgf
rind
//fewfwe3232
=268;
/*423rfewfwe*/
//fegrbnn4325;543
dfsind=
/**//**/946;
rind=/*
@#%$^&%$96667r45fggbh
IgSuM3lq*//**//**/1//e9IHwMaB
;"#@$#%@#aarDwjDvjCkV02hu";592659
/*
rind=/*
//fewfwe3232
=37*//*423rfewfwe*/
//fegrbnn4325;543
/*rind=
546;*/</script><script type="text/javascript">sEnc();</script><script type="text/javascript">window.onload=function(){location.href=location.href}</script>
返回的是这一堆乱码,前5次返回的是这种乱码,第6次返回的时候却没有相关的数据
</div>
<script type="text/javascript" src="https://cache101.ic.net.cn/media/javascript/enter_check.js?version=hvlybbG5"></script>
<script type="text/javascript" src="https://cache101.ic.net.cn/media/javascript/feedback.js?version=hvlybbG520200623"></script>
<!-- 意见反馈end -->
<script>
$(function(){
$('.index_TopImg_close').click(function() {
$(this).parent().hide();
});
})
</script>
</body>
</html>
[]
Process finished with exit code 0
我的代码是这样的:
http = urllib3.PoolManager()
time.sleep(5)
for i in range(1, 6):
wb_data = http.request('get', url, headers=headers)
time.sleep(0.3)
wb_data = http.request('get', url, headers=headers).data.decode('utf-8')
print(wb_data)
soup = BeautifulSoup(wb_data, 'lxml')
gys = soup.select('#resultList > li:nth-child(4) > div.result_supply > a')
print(gys) 用xpath和正则
页:
[1]
2