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

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 想请教大家一个关于 web 请求或者说爬虫方面的问题
未分類
17 9 月 2020

想请教大家一个关于 web 请求或者说爬虫方面的问题

想请教大家一个关于 web 请求或者说爬虫方面的问题

資深大佬 : lic2zac 6

小弟是做 python 爬虫的,用的是大家很熟悉的库 requests, 今天遇到一个很神奇的现象,在爬取一个国外网站的过程中, 它有 xx.cn 和 xx.com 这两个域名, 然后我在并发的请求 AB 两个商品数据时发生了以下状况(这几个情况我试了很多遍, 都是这样)

  1. 用同一个 session 并发请求 xx.com/A 和 xx.com/B 的时候没有问题

  2. 用同一个 session 并发请求 xx.cn/A 和 xx.cn/B 的时候发现出现了 A 的响应数据给了 B 的请求, B 的响应数据给了 A 的请求(但是大部分时候都是正确的,应该也和反爬无关)

  3. 每个请求单独生成一个 session, 并发请求 xx.com/A 和 xx.com/B 的时候没有问题, 并发请求 xx.cn/A 和 xx.cn/B 也没有问题

我想问的是:

  1. 会不会是他们.cn 和.com 用的技术不一样, 导致.cn 的有这个问题?

  2. web 服务会有 bug 导致出现这个问题么?

感谢大家 0.0

大佬有話說 (4)

  • 資深大佬 : kop1989

    估计是.cn 的服务器端是一个壳,通过 http 接口再去.com 的服务器去取结果。
    但肯定这过程中存在异步转同步的操作,比如.com 中有个针对.cn 的请求缓存队列。
    然后这个队列的返回是以 sessionkey 或者说 sessionID 或者等等特征 id 作为唯一值的。
    lz 用请求工具直接调接口,导致特征 id 不唯一,就会出现内存泄漏的情况。

  • 資深大佬 : kop1989

    @kop1989 #1 修正一下,“但肯定这过程中存在异步转同步的操作” =》异步转同步再异步

  • 主 資深大佬 : lic2zac

    @kop1989 如果真是这样做的确实有可能出现这个问题, 不过 cn 返回的中文数据,com 返回的是英文数据,应该不太可能用同一个 com 的接口吧

  • 資深大佬 : kop1989

    @lic2zac #3 有可能是同一个数据链路层,然后做的国际化。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

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

51la

4563博客

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