跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 豆瓣这个页面的反爬用了什么黑科技
未分類
30 12 月 2020

豆瓣这个页面的反爬用了什么黑科技

豆瓣这个页面的反爬用了什么黑科技

資深大佬 : wjfz 6

目前的情况:

1 、在终端里直接 curl 不加任何参数是可以获取到的

curl https://www.douban.com/doubanapp/h5/book/2567698/desc

2 、Python requests 库获取不到

3 、PHP curl 带上从 chrome 复制的全套 header 也获取不到。

疑问的点

1 、终端里不带参数为什么能请求到

2 、用代码的方式不管怎样都请求不到,即使带了 chrome 能正常访问的全套 header

import requests import os   os.system('curl https://www.douban.com/doubanapp/h5/book/2567698/desc')  url = 'https://www.douban.com/doubanapp/h5/book/2567698/desc' strhtml = requests.get(url) print(strhtml.text) 

大佬有話說 (10)

  • 資深大佬 : manzhiyong

    不能老实的用 selenium 吗

  • 資深大佬 : fiveelementgid

    首先,终端不带参数还是还是有默认 Header 头的
    你用 curl -v 查查看

  • 資深大佬 : maocat

    headers = {‘User-Agent’: ‘Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36’}

    requests.get(url,headers=headers) <Response [200]>
    requests.get(url) # <Response [418]>

  • 資深大佬 : songjiaxin2008

    curl 默认就是 curl 的 ua 哦

  • 資深大佬 : songjiaxin2008

    @maocat #3 正解,requests 包也有自己的默认 UA

  • 資深大佬 : JetMac

    418 I’m a teapot

  • 主 資深大佬 : wjfz

    @maocat 尴尬,用 PHP 的 curl 试了下不行就没用 Python 试着加 header 了。看来还是 PHP 的 curl 库不对劲。

  • 資深大佬 : HFX3389

    requests 包默认的 UA 是:python-requests/{package version}

  • 主 資深大佬 : wjfz

    @fiveelementgid
    @maocat
    @songjiaxin2008
    @HFX3389

    请教一下,那我用 PHP 带了全套 header,包含 ua 和 cookie,依然是请求不到的,这有可能是什么原因

  • 主 資深大佬 : wjfz

    原因找到了,太愚蠢了,PHP 的 curl 是单独设置 ua 的,没在 header 数组里。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具