V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  moxiaowei  ›  全部回复第 5 页 / 共 6 页
回复总数  107
1  2  3  4  5  6  
2018-11-11 10:22:25 +08:00
回复了 moxiaowei 创建的主题 Python scrapy 的请求问题
@zhijiansha 中间件 download middle 是写了的,但是,download middle 我是用来使用代理的。
2018-11-10 10:37:20 +08:00
回复了 moxiaowei 创建的主题 Python scrapy 的问题
@Trim21 好的 谢谢你
2018-11-09 22:21:53 +08:00
回复了 moxiaowei 创建的主题 Python scrapy 的问题
@Trim21 什么叫两次 log 的一分钟间隔里?是不是类似下面的 log

2018-11-09 22:20:26 [scrapy.extensions.logstats] INFO: Crawled 99 pages (at 2 pages/min), scraped 0 items (at 0 items/min)
2018-11-09 22:20:28 [scrapy.core.engine] DEBUG:
@JCZ2MkKb5S8ZX9pq 我已经解决了。开线程验证,很快就验证完,然后立刻使用,这样成功率相对高了很多
@ooh 有道理的 谢谢你
@ooh 我已经是这样做的了,runTestProxy 这个方法就是跑测试的
@n0trace 应该不是
@ooh 我把 download middleware 贴一下 您帮我看看问题,谢谢


def process_request(self, request, spider):

print("---------------------------------", request.url)

canUsedProxyIps = list()

proxyIps = proxyIpModel.getTwoHundredIp()#从数据库中取代理地址

print("-----------------------------------", proxyIps)

if len(proxyIps) == 0:#如果取出来为空

print("**********************数据库内为空,开始去极光拉取代理数据")

ipList = self.fromJiguangGetProxyIps()

for item in ipList:#循环插入数据库

proxyModel = proxyIpModel()

proxyModel.ipAddr = item

proxyModel.insertOne()

canUsedProxyIps.append(item)

else:#如果不为空,那么验证每一个是否可用

print("**********************数据库内不为空,开始去挨个验证每一个是否可用")

for item in proxyIps:#循环验证

if self.runTestProxy(item.ipAddr):#代理是能用的

canUsedProxyIps.append(item.ipAddr)

else:#如果代理不能用

item.deleteOne()#从数据库中删除这个代理信息

#如果发现没有可用的,那么去请求极光

while len(canUsedProxyIps) <= 20:

print("**********************数据长度不到 20 个,需要再去极光拉一些来")

ipList = self.fromJiguangGetProxyIps()

for item in ipList: # 循环插入数据库

proxyModel = proxyIpModel()

proxyModel.ipAddr = item

proxyModel.insertOne()

canUsedProxyIps.append(item)

suijiNum = random.randint(0, len(canUsedProxyIps)-1)

request.meta["proxy"] = canUsedProxyIps[suijiNum]

print("+++++++++++++++++++++++++++++++++++++++++正在用"+canUsedProxyIps[suijiNum]+"的代理去请求,"+request.url)

return None




整体思路是:如果数据库中没有可用的代理 IP,那么去极光拉 100 个代理回来,然后挨个验证能否使用,能使用,扔到数据库里并且扔到 canUsedProxyIps 这个 list 中,如果数据库中有可用代理 IP,那么从数据库中取 200 个能用的,然后验证这 200 个代理 IP,把能用的扔到 canUsedProxyIps 这个 list 中。然后循环看 canUsedProxyIps 是否有 20 个备用的代理 IP,如果不够 20 个,那么去极光拉一把,并验证是否能用,如果能用,扔到 canUsedProxyIps 和数据库中,然后再为 request 设置代理。
2018-11-07 16:17:24 +08:00
回复了 freeman1974 创建的主题 Python 问一个爬虫问题,如何生成网站需要的签名(token)
这个是用来防 csrf 攻击的,真不知道怎么弄,标记下,看看高手怎么解决
@JCZ2MkKb5S8ZX9pq 我拿到代理 IP 也会验证的,不过有个问题是,这一刻能用,并不能保证下一刻也能用,所以,轮流使用我感觉不靠谱
@hellove1985 好的 我来看看
就是 不是有个西刺么 上面的 IP 多的 但是都不能用 垃圾的一笔
@SpiderXiantang 谢谢 我来看下 。
@SpiderXiantang 能问下 您用的啥么?
@SpiderXiantang 是的 是的 纠结的一笔
2018-10-19 12:25:10 +08:00
回复了 moxiaowei 创建的主题 Python 字符串转化问题
哎 果然只有死方法,用正则先替换,谢谢大家 解析出来了
2018-10-19 08:55:34 +08:00
回复了 moxiaowei 创建的主题 Python 字符串转化问题
@cassidyhere 关键就是如何替换
2018-10-19 08:55:14 +08:00
回复了 moxiaowei 创建的主题 Python 字符串转化问题
@rabbbit 这样能用 我又何必来这儿发帖求助
2018-10-19 08:54:56 +08:00
回复了 moxiaowei 创建的主题 Python 字符串转化问题
@gz911122 这是这正常的 json ?
1  2  3  4  5  6  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3111 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 21ms · UTC 14:02 · PVG 22:02 · LAX 07:02 · JFK 10:02
Developed with CodeLauncher
♥ Do have faith in what you're doing.