Я имел связанный вопрос о получении развертываемого набора файлов от автоматизированной сборки. Я нашел, что веб-Проекты Развертывания (ссылки и все в старом вопросе) сделали то, в чем я нуждался - они - дополнение VS и MSBuild.
Using privoxy as http-proxy in front of tor works for me - here's a crawler-template:
import urllib2
import httplib
from BeautifulSoup import BeautifulSoup
from time import sleep
class Scraper(object):
def __init__(self, options, args):
if options.proxy is None:
options.proxy = "http://localhost:8118/"
self._open = self._get_opener(options.proxy)
def _get_opener(self, proxy):
proxy_handler = urllib2.ProxyHandler({'http': proxy})
opener = urllib2.build_opener(proxy_handler)
return opener.open
def get_soup(self, url):
soup = None
while soup is None:
try:
request = urllib2.Request(url)
request.add_header('User-Agent', 'foo bar useragent')
soup = BeautifulSoup(self._open(request))
except (httplib.IncompleteRead, httplib.BadStatusLine,
urllib2.HTTPError, ValueError, urllib2.URLError), err:
sleep(1)
return soup
class PageType(Scraper):
_URL_TEMPL = "http://foobar.com/baz/%s"
def items_from_page(self, url):
nextpage = None
soup = self.get_soup(url)
items = []
for item in soup.findAll("foo"):
items.append(item["bar"])
nexpage = item["href"]
return nextpage, items
def get_items(self):
nextpage, items = self._categories_from_page(self._START_URL % "start.html")
while nextpage is not None:
nextpage, newitems = self.items_from_page(self._URL_TEMPL % nextpage)
items.extend(newitems)
return items()
pt = PageType()
print pt.get_items()
Возможно, у вас проблемы с подключением к сети? Приведенный выше сценарий сработал для меня (я заменил другой URL - я использовал http://stackoverflow.com/
- и я получил страницу, как ожидалось:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" >
<html> <head>
<title>Stack Overflow</title>
<link rel="stylesheet" href="/content/all.css?v=3856">
(и т. Д.)
] Вы пытаетесь подключиться к порту SOCKS - Tor отвергает любой не-SOCKS трафик. Вы можете подключиться через посредника - Privoxy - используя порт 8118.[
] []Пример:[
] [proxy_support = urllib2.ProxyHandler({"http" : "127.0.0.1:8118"})
opener = urllib2.build_opener(proxy_support)
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
print opener.open('http://www.google.com').read()
]
[]Также обратите внимание на свойства, переданные ProxyHandler, без префикса http на ip:port[
].