u010705265 2021-06-17 22:05 采纳率: 100%
浏览 144
已采纳

爬虫遇到js跳转反爬

爬一个网站时,发现如果从来没打开过的链接使用request.get得到的内容和浏览器打开的不一样,研究了下是因为做了js跳转反爬。但是为什么浏览器打开了一次之后就能正常get到需要的内容呢?

  • 写回答

3条回答 默认 最新

  • qq_41870875 2021-06-23 13:15
    关注
    我并没有用过python,有用过php的curl,也有用过c语言的curl.
    推荐学习c语言的curl(并不用写c代码 ,只是通过c语言的curl 学习抓取网页所需用到的参数).
    相关文章可以参考下
    文章地址:https://www.cnblogs.com/meteoric_cry/p/3994893.html
    或者自行搜索CURLcode 定义 相关.
    
    你的问题解决方案是
      先通过浏览器获取到网址对应的 curl  
      在将这些参数添加到python-curl中(即模拟浏览器访问),
      每一个网站下多个地址可能某些参数是不一样的,
      但他们只要策略一样 就可以手动一次  全站使用.
    
    
    
    下面是 用谷歌浏览器获得的某网址的curl
    举例csdn为例  
    例如user-agent 即浏览器标识 ,
    curl功能有很多  也可以抓取ssl页面,
    也可以cookie 用户登录等等 , 
    一些服务器程序也是利用这些头部信息进行来源分析,这些都在CURLcode 定义中.
         
    curl "https://ask.csdn.net/questions/7452100?answer=53434076" ^
      -H "authority: ask.csdn.net" ^
      -H "cache-control: max-age=0" ^
      -H "sec-ch-ua: ^\^" Not;A Brand^\^";v=^\^"99^\^", ^\^"Google Chrome^\^";v=^\^"91^\^", ^\^"Chromium^\^";v=^\^"91^\^"" ^
      -H "sec-ch-ua-mobile: ?0" ^
      -H "upgrade-insecure-requests: 1" ^
      -H "user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36" ^
      -H "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9" ^
      -H "sec-fetch-site: none" ^
      -H "sec-fetch-mode: navigate" ^
      -H "sec-fetch-user: ?1" ^
      -H "sec-fetch-dest: document" ^
      -H "accept-language: zh-CN,zh;q=0.9" ^
      -H "cookie: "**************" ^
      --compressed
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?