苹果一次性代码怎么看(转移到ios六位代码在哪里)

背景描述

最近需要收集百度搜索查询结果,可是使用的时候,发现之前的python脚本程序失效了。

这使我无法批量采集所需的关键词数据。

问题描述

启动python脚本程序后,获取的数据一直是空值。

request请求结果返回的html页面是百度安全验证页面。

问题演示

搜索了一下,知道这是百度设置的反爬机制。

如果请求被检测判定为非人类,则会返回此页面。

苹果一次性代码怎么看(转移到ios六位代码在哪里)

<!DOCTYPE html><html lang="zh-CN">  <head>    <meta charset="utf-8">    <title>百度安全验证</title>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">    <meta name="apple-mobile-web-app-capable" content="yes">    <meta name="apple-mobile-web-app-status-bar-style" content="black">    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0">    <meta name="format-detection" content="telephone=no, email=no">    <link rel="shortcut icon" href="https://www.baidu.com/favicon.ico" type="image/x-icon">    <link rel="icon" sizes="any" mask href="https://www.baidu.com/img/baidu.svg">    <meta http-equiv="X-UA-Compatible" content="IE=Edge">    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">    <link rel="stylesheet" href="https://ppui-static-wap.cdn.bcebos.com/static/touch/css/api/mkdjump_aac6df1.css" />  </head>  <body>    <div class="timeout hide-callback">      <div class="timeout-img"></div>      <div class="timeout-title">网络不给力,请稍后重试</div>      <button type="button" class="timeout-button">返回首页</button>    </div>    <div class="timeout-feedback hide-callback">      <div class="timeout-feedback-icon"></div>      <p class="timeout-feedback-title">问题反馈</p>    </div>    <script src="https://ppui-static-wap.cdn.bcebos.com/static/touch/js/mkdjump_v2_2d634b8.js"></script>  </body></html>

我的思考

为了能够解决这个问题。

首先我猜想可能是请求头headers的数据过期了。

我通过浏览器F12,拿到最新的cookie,在代码中替换了cookie

初次尝试

尝试执行代码,结果失败。依旧是百度安全验证页面。

再次思考

我二次猜想,把浏览器中成功获取搜索结果的url,替换成我在代码中发起的请求url

当然,此时的cookie也是当前页面请求中发起的cookie

再次尝试

这次,代码是可以正常请求到数据的。

一个猜想

我替换了url中的关键词word,然后执行代码,又会返回安全验证。

我心想难道百度现在这么坑,一次搜索结果就要对应一个cookie么。

得出结果

头好痛,我可能要长脑子了。

终于脑子长出来了,我找到了突破口。

我发现用urllib库的request模块就可以正常请求得到网页数据。

既然这个模块可以拿到数据,就现从这一块入手。

编写代码进行测试。

req = urllib.request.Request(url, headers=headers)
response = urllib.request.urlopen(req)

html = response.read().decode('utf-8')
print(html)
html = etree.HTML(html)
苹果一次性代码怎么看(转移到ios六位代码在哪里)

image.png

可以拿到数据得到数据。

那就可以完善代码,实现自动翻页爬取分页数据了。

既然urllib库可以请求成功,那我之前的两个猜想就都是胡言乱语。

虽然我没有搞清楚为什么request库会被反爬机制制裁。

但是既然可以完成需求,那就先用着。

能跑就行(不是)。

附加彩蛋

在一度思索反爬原理而得不到结果的时候,我想到了借助网页采集工具来实现我的需求。

我便选择了八爪鱼采集器。

这个工具很强大,不需要懂代码,就可以完成网页数据的采集。

花了十分钟做了简单的配置我就在八爪鱼获得了想要的数据。

苹果一次性代码怎么看(转移到ios六位代码在哪里)

屏幕截图 2023-03-03 142024.png

结语

此次实践目标是:收集百度搜索的词条数据。

使用了两种收集方式:

  1. python脚本
  2. 八爪鱼采集器

对比优缺点

  • 各自优点

python性能更好,可以对数据进行更为复杂的处理。

八爪鱼采集器上手简单,无需代码即可采集数据。

  • 各自缺点

python需要一定的编程基础,对小白不太友好。

八爪鱼采集器可以采集数据,但是只能做一些简单的逻辑处理判断。

疑点未解决

python脚本中request库模拟请求会被百度反爬机制干掉,但是urllib库的request模块模拟的请求可以正常使用,这背后的原因是什么。

本文部分内容来自互联网,如有疑问请与我们联系。

发布者:币侠财经,转转请注明出处:https://www.yfhhf.com/baike/169725.html

(0)
                       
上一篇 2023年 3月 31日 下午4:35
下一篇 2023年 3月 31日 下午4:49

相关推荐

  • 国共地下党谍战电视剧大全(国共地下党谍战电视剧大全黑土热血)

    决战前(电视剧) 主演:杨溢 吕凉 张晨光 万茜 导演:刘一志 集数:32集 年份:2012年 地区:中国内地 类别:电视剧 谍战 决战前剧情介绍 三十年代末太平洋战争爆发前,第二次长沙会战前,国民党一号杀手叶锦堂(杨溢饰)在一次例行刺杀任务失败后被敌我双方通缉,被义父上司冯楚良(张晨光饰)出卖,机缘巧合下开始与中共地底下党韩冬麟(石兆琪饰)合作寻找情报。海…

    2022年 11月 11日
    3.2K0
  • 2021三名航天员什么时候返回(2021三名航天员什么时候返回地面)

    前段时间有很多朋友都想知道2021三名航天员什么时候返回是什么。今天小编特意为大家整理了相关知识来解答!还有其他网友想搞清楚2021三名航天员什么时候返回地面,币侠网小编(www.yfhhf.com)现在为大家找到了相关问题的答案,接下来一起看看吧,希望能给大家带来帮助。 太空中的三位中国航天员已于今天返回地球。 据报道,9 月 17 日 13 时 34 分…

    2022年 10月 9日
    4.4K0
  • 无需征信的小额贷款(无需征信的小额贷款且利息低)

    很多人想要申请小额贷款,但是自己的征信不好,怕申请不通过。又或者是害怕申请多了会将征信查花,想找不需要查看征信的小额贷款。市面上有这么多贷款,那存不存在不查征信的小额贷款呢?不妨接着往下看。 一、小额贷款不查征信有哪些? 无论是干什么,失信之人多多少少都会受到一点阻碍,毕竟没有信用之人,很少有人愿意与之打交道。要说征信不好的人想要贷款的话,难度更大了,就算是…

    2023年 1月 7日
    2290
  • 中国三大舰队(中国三大舰队是哪三个)

    前段时间有很多朋友都想知道中国三大舰队是什么。今天小编特意为大家整理了相关知识来解答!还有其他网友想搞清楚中国三大舰队是哪三个,币侠网小编(www.yfhhf.com)现在为大家找到了相关问题的答案,接下来一起看看吧,希望能给大家带来帮助。 今天来聊聊三大舰队中的东海舰队,作为直面台海海域的舰队,很多人长时间内都认为东海舰队在三大舰队中的实力不说排第一,至少…

    2022年 10月 9日
    7320
  • 10万台币(10万台币等于多少人民币)

    澎湃新闻记者 钟煜豪 7月22日,艺人林志颖驾车行经桃园市芦竹区准备上中正桥时撞上分隔岛,他跟儿子送医治疗。据台媒报道,因交通、指示杆被撞断,桃园市交通局紧急修复并将原本的7根延长成14根,将向林志颖求偿修复经费。 据中时新闻网7月24日消息,桃园市交通局说,指示杆修复需7至14天,由于水泥底座的固定用钢筋也被撞到变形,因此需要全部敲除重做,而等水泥干燥到一…

    百科问答 2023年 1月 24日
    1900

联系我们

不接风险内容

在线咨询: QQ交谈

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信