Python Web Crawlers и «получение» исходного кода HTML - PullRequest
18 голосов
/ 20 августа 2010

Итак, мой брат хотел, чтобы я написал веб-сканер на Python (самоучка), и я знаю C ++, Java и немного html.Я использую версию 2.7 и читаю библиотеку python, но у меня есть несколько проблем 1. Концепция httplib.HTTPConnection и request для меня нова, и я не понимаю, загружает ли она HTML-скрипт, такой как cookie или экземпляр.Если вы сделаете оба из них, вы получите источник для страницы веб-сайта?И какие слова мне нужно знать, чтобы изменить страницу и вернуть измененную страницу.

Просто для фона, мне нужно скачать страницу и заменить любые img на те, которые у меня есть

И было бы хорошо, если бы вы, ребята, могли бы сказать мне ваше мнение о 2,7 и 3,1

Ответы [ 3 ]

41 голосов
/ 20 августа 2010

Используйте Python 2.7, в данный момент у него есть больше сторонних библиотек. ( Редактировать: см. Ниже).

Я рекомендую вам использовать модуль stdlib urllib2, это позволит вам удобно получать веб-ресурсы. Пример:

import urllib2

response = urllib2.urlopen("http://google.de")
page_source = response.read()

Для разбора кода взгляните на BeautifulSoup.

Кстати: что именно вы хотите сделать:

Просто для фона, мне нужно скачать страницу и заменить любой IMG на те, которые у меня есть

Редактировать: Теперь 2014 год, большинство важных библиотек перенесено, и вам определенно следует использовать Python 3, если вы можете. python-requests - очень хорошая библиотека высокого уровня, которую проще использовать, чем urllib2.

5 голосов
/ 15 марта 2018

Пример с python3 и библиотекой requests, как упомянуто @leoluk:

pip install requests

Скрипт req.py:

import requests

url='http://localhost'

# in case you need a session
cd = { 'sessionid': '123..'}

r = requests.get(url, cookies=cd)
# or without a session: r = requests.get(url)
r.content

Теперь выполните его, и вы получите html-источник localhost!

python3 req.py

0 голосов
/ 20 августа 2010

Первое, что вам нужно сделать, это прочитать HTTP-спецификацию , которая объяснит, что вы можете ожидать получить по проводам.Данные, возвращаемые внутри содержимого, будут «отображаемой» веб-страницей, а не источником.Короче говоря, источником может быть JSP, сервлет, скрипт CGI, почти все, и у вас нет к этому доступа.Вы получаете только тот HTML-код, который отправил вам сервер.В случае статической HTML-страницы, тогда да, вы увидите «источник».Но для всего остального вы видите сгенерированный HTML, а не источник.

Когда вы говорите modify the page and return the modified page что вы имеете в виду?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...