Crossin的编程教室

标题: 遇到一个selenium都解决不了的问题哎,想问一下crossin先生 [打印本页]

作者: JasonYeung    时间: 2018-10-26 00:09
标题: 遇到一个selenium都解决不了的问题哎,想问一下crossin先生
找免费代理的时候找到了一个更新很快的网站(国外的需要科学上网)
https://hidemyna.me/en/proxy-list/
但是我抓包找不到数据
然后用selenium试了一下
得到的page_source跟抓包的是一样的
我发现它进入网站前有一个检测浏览器 然后跳转的动作 不知道是不是这里卡到的(附件图)
我试过进入之后 sleep了10秒再reflesh,不过还是不行。
crossin先生有过见过这样的情况吗?


微信图片_20181026000515.png (35.11 KB, 下载次数: 284)

微信图片_20181026000515.png


作者: crossin先生    时间: 2018-10-26 00:50
这里不会自动跳过去吗?如果一直卡这里,那的确没办法抓到。肯定对方做了很严格的检测

这个一时看不出问题
作者: JasonYeung    时间: 2018-10-26 01:12
crossin先生 发表于 2018-10-26 00:50
这里不会自动跳过去吗?如果一直卡这里,那的确没办法抓到。肯定对方做了很严格的检测

这个一时看不出问题 ...

会调过去的,但是跳过去之后的page_source不是检查元素里面的内容
作者: crossin先生    时间: 2018-10-26 19:51
JasonYeung 发表于 2018-10-26 01:12
会调过去的,但是跳过去之后的page_source不是检查元素里面的内容

那就奇怪了。那你看看是不是有 iframe ,包含在另一个网页中
一般来说如果网页已经切过去了,那应该能拿到的
作者: JasonYeung    时间: 2018-10-27 22:17
crossin先生 发表于 2018-10-26 19:51
那就奇怪了。那你看看是不是有 iframe ,包含在另一个网页中
一般来说如果网页已经切过去了,那应该能拿 ...

搞不懂..我有找到了其他三个的国外代理网站
想请问一下,crossin先生你的服务器上IP池里的存活IP量一般时多少? 我这里徘徊在100左右
扫了3个国内的网站(就是你的项目里的3个)。还有我找的3个国外的代理网站(100分钟刷一次,更新比较快)

还有一个问题 就是我在一个文件里开了10个线程,然后如果某个线程执行了exit()函数的话,是整个程序会结束还是这个线程会结束?
就是这样启动的
if __name__ =='__main__':
    threading.Thread(target=start_get_region).start()
    threading.Thread(target=start_get_region).start()
    threading.Thread(target=start_get_region).start()
    threading.Thread(target=start_get_region).start()
我在start_get_region()函数里执行while True,然后里面有一个弹出redis队列里的url的操作,
然后如果弹出为空就是判断爬完了队列里所有url,然后断开数据库,执行exit(),否则会继续循环
但是我有一个顾虑,就是这个exit是终止程序还是线程,因为如果是结束程序的话,可能当一个线程遇到了最后一个url的下一个弹出操作,就是空的那个,执行了exit(),但是可能执行最后几个个url的线程可能还没到写入数据库的步骤,那这几个线程的数据不就丢失了么?
作者: crossin先生    时间: 2018-10-28 12:54
JasonYeung 发表于 2018-10-27 22:17
搞不懂..我有找到了其他三个的国外代理网站
想请问一下,crossin先生你的服务器上IP池里的存活IP量一般时 ...

我的系统上是退出子线程,但我不确定你的系统里是不是,你可以自己写个简单代码验证下

免费代理IP的可用量通常是相当低的,我们之前是抓了几万个,一般也只有几十个可用,还得不停更新
所以如果自己随便用用也够了,如果要优化一下,定时验证机制是要再设计一下的
作者: JasonYeung    时间: 2018-10-28 21:54
crossin先生 发表于 2018-10-28 12:54
我的系统上是退出子线程,但我不确定你的系统里是不是,你可以自己写个简单代码验证下

免费代理IP的可用 ...

好的 我今天试了一下 在exit之前打印一条信息,然后发现信息输出后还有其他线程的执行信息,所以说是退出线程的了




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5