2014-11-15 3 views
0

풀다운, 그래서 위키 피 디아의 무리와 함께 텍스트 파일이 위키 피 디아 페이지

http://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Alabama 
http://en.wikipedia.org/wiki/List_of_cities_and_census-designated_places_in_Alaska 
http://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Arizona 
http://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Arkansas 
http://en.wikipedia.org/wiki/List_of_cities_and_towns_in_California 
http://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Colorado 
... etc 

및 각 페이지의 HTML을 풀다운하기위한 다음과 같은 파이썬 스크립트를 연결

import urllib.request 
for line in open("sites.txt", "r"): 
    print("Pulling: " + line) 
    urllib.request.urlretrieve(line, line.split('/')) 

하지만 난 그것이 내가 다음과 같은 오류 얻을 실행하면

Traceback (most recent call last): 
File "C:\Users\brandon\Desktop\site thing\miner.py", line 5, in <module> 
    urllib.request.urlretrieve(line, line.split('/')) 
File "C:\Python3\lib\urllib\request.py", line 188, in urlretrieve 
    tfp = open(filename, 'wb') 
TypeError: invalid file: ['http:', '', 'en.wikipedia.org', 'wiki', 'List_of_cities_and_towns_in_Alabama\n'] 

모든 아이디어를 어떻게이 문제를 해결하고 내가 걸려 무엇을 할 수 있습니까?

--- 편집 ---

솔루션 :

import urllib.request 
for line in open("sites.txt", "r"): 
    article = line.replace('\n', '') 
    print("Pulling: " + article) 
    urllib.request.urlretrieve(article, article.split('/')[-1] + ".html") 
+2

왜'/'에 줄을 나눠 넣으시겠습니까? – MattDMo

+0

왜냐하면 나는 바보 야! 그렇게 간단한 것. 고맙습니다! – officialhopsof

답변

1

이가 (필자는 requests 라이브러리를 선호) 시도 :

import requests 

with open('sites.txt', 'r') as url_list: 
    for url in url_list: 
     print("Getting: " + url) 
     r = requests.get(url) 
     # do whatever you want with text 
     # using r.text to access it 
+0

솔루션을 포함하도록 게시물을 편집합니다. MattDMo의 질문으로 해결책을 찾도록하겠습니다.하지만 어쨌든 고맙습니다. – officialhopsof

0

웹 페이지 링크 가져 오기 코드 :

import urllib, htmllib, formatter 

website = urllib.urlopen("http://en.wikipedia.org") 
data = website.read() 
website.close() 
format = formatter.AbstractFormatter(formatter.NullWriter()) 
ptext = htmllib.HTMLParser(format) 
ptext.feed(data) 
for link in ptext.anchorlist: 
    print(link) 

// 전체 ebpage 내용 & 응답 가져 오기 도구

import urllib 

response = urllib.urlopen('http://en.wikipedia.org') 
print 'RESPONSE:', response 
print 'URL  :', response.geturl() 

headers = response.info() 
print 'DATE :', headers['date'] 
print 'HEADERS :' 
print '---------' 
print headers 

data = response.read() 
print 'LENGTH :', len(data) 
print 'DATA :' 
print '---------' 
print data 
관련 문제