2012-11-11 19 views
15

Przeczytałem wiele odpowiedzi dotyczących skrobania w Internecie, które mówią o BeautifulSoup, Scrapy e.t.c. wykonać skrobanie w Internecie.Nieodłączny sposób na zapisanie źródła strony internetowej

Czy istnieje sposób na zachowanie równoważnika zapisania źródła strony z przeglądarki internetowej?

To znaczy, czy w Pythonie istnieje sposób na wskazanie go na stronie internetowej i pobranie go w celu zapisania źródła strony do pliku tekstowego za pomocą standardowych modułów Pythona?

Tu muszę:

import urllib 

f = open('webpage.txt', 'w') 
html = urllib.urlopen("http://www.somewebpage.com") 

#somehow save the web page source 

f.close() 

Niewiele wiem - ale patrząc na kod faktycznie ciągnąć źródło strony więc mogę to napisać. Rozumiem, że urlopen właśnie nawiązuje połączenie.

Być może istnieje odpowiednik readlines() dla czytania linii strony internetowej?

+2

Witamy na przepełnienie stosu! Zachęcamy do [badania swoich pytań] (http://stackoverflow.com/questions/how-to-ask). Jeśli [próbowałeś już czegoś] (http://whathaveyoutried.com/), dodaj to pytanie - jeśli nie, najpierw zbadaj i spróbuj najpierw odpowiedzieć na twoje pytanie, a potem wróć. –

+1

Dzięki! Nadal jestem bardzo nowy na stronie, więc przepraszam, jeśli podszedłem do tego w niewłaściwy sposób. Dodam kod, skąd mam :) –

Odpowiedz

29

Możesz spróbować urllib2:

import urllib2 

page = urllib2.urlopen('http://stackoverflow.com') 

page_content = page.read() 

with open('page_content.html', 'w') as fid: 
    fid.write(page_content) 
+3

Aby uniknąć problemów z kodowaniem, użyj 'with open ('page_content.html', 'wb') jako fid:' –

0

Aktualizacja kodu dla Pythona 3 (gdzie urllib2 jest przestarzałe):

from urllib.request import urlopen 
html = urlopen("http://www.google.com/") 
with open('page_content.html', 'w') as fid: 
    fid.write(html) 
Powiązane problemy