我需要帮助在Ubuntu中设置Tor并在scrapy框架中使用它.
我做了一些研究,发现了这个指南:
class RetryChangeProxyMiddleware(RetryMiddleware):
def _retry(self, request, reason, spider):
log.msg('Changing proxy')
tn = telnetlib.Telnet('127.0.0.1', 9051)
tn.read_until("Escape character is '^]'.", 2)
tn.write('AUTHENTICATE "267765"\r\n')
tn.read_until("250 OK", 2)
tn.write("signal NEWNYM\r\n")
tn.read_until("250 OK", 2)
tn.write("quit\r\n")
tn.close()
time.sleep(3)
log.msg('Proxy changed')
return RetryMiddleware._retry(self, request, reason, spider)
Run Code Online (Sandbox Code Playgroud)
然后在settings.py中使用它:
DOWNLOADER_MIDDLEWARE = {
'spider.middlewares.RetryChangeProxyMiddleware': 600,
}
Run Code Online (Sandbox Code Playgroud)
然后你只想通过本地代理(polipo)发送请求,这可以通过以下方式完成:
tsocks scrapy crawl spirder
Run Code Online (Sandbox Code Playgroud)
有没有人可以确认,这种方法有效,你得到不同的IP?
我创建了一个继承自CrawlSpider的蜘蛛.
我需要使用该__init__
函数,但始终收到此错误:
码:
class mySpider(CrawlSpider):
def __init__(self):
super(mySpider, self).__init__()
.....
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:未找到KeyError Spider:mySpider.
没有这个__init__
功能一切正常
我需要抓一个使用javascript的页面.这就是我使用Selenium的原因.问题是selenium无法获取所需的数据.
我想使用htmlXmlSelector来尝试获取数据.
如何将生成的html selenium传递给htmlXmlSelector?
我有2个模型属性 - model.name和model.url我需要创建一个linkColumn,列名= model.name并链接到model.url中指定的url
有可能实现这样的事情吗?
谢谢
例如,我有这个字符串: "http://www.google.com/this_is_our_network/"
我想匹配“工作”这个词,但在开头或结尾都没有字母字符。在上面的示例中,正则表达式不应返回匹配项。
但是,在这个字符串中:"http://www.google.com/work_for_us.html"
正则表达式应该匹配,因为开头和结尾都没有字母字符。