Próbuję pobrać niektóre dane ze strony internetowej. Jednak zwraca mi incomplete read
. Dane, które próbuję uzyskać, to ogromny zestaw zagnieżdżonych linków. Zrobiłem kilka badań w trybie online i odkryłem, że może to być spowodowane błędem serwera (kodowanie kończące transfer przed osiągnięciem oczekiwanego rozmiaru). Również znalazłem obejście dla powyższego na tym linkJak obsługiwać metodę IncompleteRead: w pythonie
Jednak nie jestem pewien, jak korzystać z tego w moim przypadku. Poniżej znajduje się kod pracuję nad
br = mechanize.Browser()
br.addheaders = [('User-agent', 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1;Trident/5.0)')]
urls = "http://shop.o2.co.uk/mobile_phones/Pay_Monthly/smartphone/all_brands"
page = urllib2.urlopen(urls).read()
soup = BeautifulSoup(page)
links = soup.findAll('img',url=True)
for tag in links:
name = tag['alt']
tag['url'] = urlparse.urljoin(urls, tag['url'])
r = br.open(tag['url'])
page_child = br.response().read()
soup_child = BeautifulSoup(page_child)
contracts = [tag_c['value']for tag_c in soup_child.findAll('input', {"name": "tariff-duration"})]
data_usage = [tag_c['value']for tag_c in soup_child.findAll('input', {"name": "allowance"})]
print contracts
print data_usage
Proszę mi pomóc z this.Thanks
Zwykle po otrzymaniu błędu wypróbowuję inną prośbę i zawsze się to udaje. Może 100 razy na 100 prób. – Blaszard