小编bra*_*don的帖子

在抓取网站时获取过去的请求限制

我正在开发一个Web爬虫,它可以为不想编入索引的站点编制索引.

我的第一次尝试:我编写了ac#crawler,遍历每一页并下载它们.这导致我的IP在10分钟内被其服务器阻止.

我将它移动到亚马逊EC2并编写了一个运行大约50个实例的分布式python脚本.这仍然高于启动我的门槛.每月花费约1900美元......

我回到了我最初的想法并把它放在缩短版的TOR网络上.这很有效,但速度很慢.

我没有想法.如何通过他们阻止我重复请求.

我说"阻止"他们实际上是在一个肯定存在的页面上给我一个随机的404未找到的错误.它是随机的,只有在我在一小时内传递大约300个请求后才开始发生.

distributed-computing web-crawler

10
推荐指数
1
解决办法
9003
查看次数

如何在mongoose中使用elemMatch进行查询?

我正在尝试基于以下mongodb查询在我的mongodb集合中查询用户:

db.users.find("boxes":{"$elemMatch":{"a":"foo","b":"bar"}})

如果我直接用mongodb查询,这是有效的.它返回任何具有a ="foo"和b ="bar"的框的用户.

我如何在mongoosejs中查询?我尝试过使用User.find().elemMatch它但不起作用.无论如何,这似乎只是预测结果.原来的mongodb查询确实对我有用,我只需要能够在mongoosejs中复制它.有任何想法吗?

mongoose node.js

10
推荐指数
2
解决办法
2万
查看次数

我应该尝试使用MVC3和ASP.net的F#吗?

我正在研究一个新的合同项目.通常我会使用c#asp.net和razor.问题是,我的投资组合说.C#C#C#C#一遍又一遍.我认为投资组合明智,可能会有所帮助.另一方面,功能语言似乎是一种有趣的方法,因为就控制器而言,asp.net MVC3非常注重功能.那么,有没有人试过使用F#来做这个并且结果是有用的还是只是妨碍了?

我问,因为控制器似乎从功能上受益,而模型似乎受益于面向对象的语言.

f# asp.net-mvc-3

8
推荐指数
1
解决办法
607
查看次数

在C#中发送原始IP数据包,以太网层之上的所有内容

我不想修改帧的以太网部分,但我需要修改IP数据包和帧的数据部分.

我尝试发送一个原始帧,它仍然输入IP信息.我基本上需要发送一个帧而不定义端点,除了我发送的位.

这是我得到的:

Socket s = new Socket(AddressFamily.Unspecified, SocketType.Raw, ProtocolType.Raw);
EndPoint ep = new IPEndPoint(IPAddress.Parse("205.188.100.58"),80);
s.SendTo(GetBytes(""),ep); //im sending nothing, so i expect the frame to just have ethernet stuff
s.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, false);
Run Code Online (Sandbox Code Playgroud)

我的问题: 使用SendTo添加帧的IP部分,我不希望这样,因为我想欺骗源IP.使用"发送"将崩溃,因为它说我需要指定一个端点.有关该怎么办的任何建议?我只是想发送一个数据包并自己定义IP部分和数据部分.

注意:不,我没有进行DOS攻击,我需要这个才能合法使用!

我知道如何定义IP部分,它只是在没有生成IP部分的情况下实际发送数据.

c# ip packet spoofing

6
推荐指数
1
解决办法
1万
查看次数

Linq to SQL join然后按顺序排列

我有以下两个类:

book_page

  • CHAPTER_TITLE
  • 章节内的顺序
  • (其他领域)

章节

  • CHAPTER_TITLE
  • 订购

我有一系列book_pages及其章节标题.我希望能够按照"chapter_title"在"章节"集合中出现的顺序对book_page集合进行排序,然后按"章节内的顺序"字段排序.

我尝试在chapter_title列上编写连接,然后按chapter.order排序,然后按page.order_within_page排序,但没有运气.有什么建议?

我的代码:

var ordered_pages= from chapter in chapters
                        join page in book_pages
                        on chapter.chapter_title equals page.chapter_title
                        select new{order = chapter.order,page = page}

var finalList = from row in ordered_pages.OrderBy(c => c.order).ThenBy(p =>p.page.order_within_chapter)
                select row.page;
Run Code Online (Sandbox Code Playgroud)

这实际上并不起作用,即使它确实很难看.我错过了使用LINQ执行此操作的方法吗?

c# join linq-to-sql

4
推荐指数
2
解决办法
1万
查看次数

wget下载以供离线观看,包括绝对参考

我正在尝试使用以下命令下载整个网页

wget -p -k www.myspace.com/
Run Code Online (Sandbox Code Playgroud)

这确实下载了该目录下的页面和任何图像或脚本,但我正在试图找出如何下载该页面以完全脱机查看.如何在www.myspace.com的源代码中链接每个图像,脚本和样式表,包括外部链接?

wget

4
推荐指数
1
解决办法
3788
查看次数

混淆从字节到十六进制的基本转换

我在使用这段代码时遇到了一些麻烦.QByteArray :: number应该从哈希中获取QByteArray并将其转换为十六进制,但结果比我预期的要短得多.我以为两个输出都应该是一样的.我认为这与指针演员有关,但我不明白演员表现得如何做得足以看出如何制作价值.

任何人都可以解释为什么这两行输出不同的结果?最好用数学术语表示.

QCryptographicHash hash(QCryptographicHash::Sha1);
hash.addData("some string to hash");
qDebug() << QByteArray::number(*(qlonglong*)hash.result().data(), 16);
qDebug() << hash.result().toHex();
Run Code Online (Sandbox Code Playgroud)

输出:

"89bde3ca56c83c47" 
"473cc856cae3bd89e43ff9f62963d6f38372ccbd" 
Run Code Online (Sandbox Code Playgroud)

预期产出:

"473cc856cae3bd89e43ff9f62963d6f38372ccbd" 
"473cc856cae3bd89e43ff9f62963d6f38372ccbd" 
Run Code Online (Sandbox Code Playgroud)

注意:我的实际问题是在36,而不是16,但有一个方便的.toHex方法,使这更容易显示.

c++ qt pointers

2
推荐指数
1
解决办法
280
查看次数