超正义的小煌 发表于 2021-5-12 12:32

求助关于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次的时候获取响应内容?

宅男/kel 发表于 2021-5-12 12:39

都是这种格式的话 ,你可以用正则来匹配呀

百千三昧 发表于 2021-5-12 12:40

kafei000 发表于 2021-5-12 12:41

先打印出response.text,看看你要的数据打印出来没,打印出来的话,试试用xpath和正则。
第二个问题,用try - expect捕获异常就好了

ReLoading 发表于 2021-5-12 12:41

1,选择器表达式错误,参考xpath语法;

2,反爬机制,注意headers参数,以及更换ip

咸鱼灭 发表于 2021-5-12 12:43

第一a['tiltle']获取蓝色部分,a.get_text()获取红色
第二你可以对请求状态码做个判断
第三可以的话最好把代码贴出来

知心 发表于 2021-5-12 13:15

问题1:方法有很多,你看你擅长那个库。问题2:这是你自己的逻辑实现呀

chooper 发表于 2021-5-12 13:15

反扒可能是访问太快了吧,试着加time.sleep(1)延迟1秒

超正义的小煌 发表于 2021-5-12 13:28

感谢各位大佬的帮忙,第一个问题已经解决了


第二个出现了一下反爬情况:

<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)

老婆是加藤惠 发表于 2021-5-12 14:19

用xpath和正则
页: [1] 2
查看完整版本: 求助关于Python爬虫的问题