Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/999: Рейтинг темы: голосов - 999, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 31.07.2013
Сообщений: 47

Как скачать страницу через прокси-сервер?

02.09.2013, 17:21. Показов 190442. Ответов 46
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Вернулся к простенькой задачке по парсингу сайтов. Но столкнулся с следующей бедой, на работе подключение к интернету осуществляется с помощью прокси сервера, в одной из тем мне написали решение данной проблемы, но я не уверен что понял. Вот и прошу собственно помощи. Вот сам код.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import lxml
import urllib.request
url = "http://google.ru/"
 
https_proxy = ":3128"
 
proxyDict = { 
             
              "https" : https_proxy
              
            }
 
r = requests.get(url,  proxies=proxyDict)
doc = lxml.html.document_fromstring(r.read())
И собственно ошибка.

Python
1
2
3
4
Traceback (most recent call last):
  File "C:/Python32/xd", line 13, in <module>
    r = requests.get(url,  proxies=proxyDict)
NameError: name 'requests' is not defined
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.09.2013, 17:21
Ответы с готовыми решениями:

Как скачать файл через прокси
Как собственно скачать файл через прокси HTTP,SOCKS4 или SOCKS5

Как заставить nginx ходить на урл через другой через прокси сервер?
Ситуация следующая. Сервер_1 - nginx, его надо настроить Сервер_2 - прокси сервер, прокинут доступ только от Сервера_1, позволяет...

Прокси-сервер на nginx периодически редиректит на домен, который открываю через прокси
Добрый день! Есть обычный сайт (пусть будет domain.ru) , а есть прокси-сервер на vds который доступен в адресной строке по домену...

46
0 / 0 / 0
Регистрация: 31.07.2013
Сообщений: 47
05.09.2013, 19:08  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от accept Посмотреть сообщение
Python
1
for t in soup.findAll(name = 'td' , attrs = {'class': r'[dn]2? underlineRow'}):
Ничего не выдает..

Добавлено через 31 секунду
Цитата Сообщение от accept Посмотреть сообщение
это пока не нужно, регулярные выражения можно передавать в словарь
А все так что это? Интересно очень.
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
05.09.2013, 19:11
Цитата Сообщение от Lamerok1 Посмотреть сообщение
Ничего не выдает..
там исправлено

Цитата Сообщение от Lamerok1 Посмотреть сообщение
А все так что это?
ну, это накрайняк, можно сделать функцию, которая принимает тег и анализирует его содержимое, и передать её в метод .findAll()
0
0 / 0 / 0
Регистрация: 31.07.2013
Сообщений: 47
05.09.2013, 19:15  [ТС]
Цитата Сообщение от accept Посмотреть сообщение
Python
1
for t in soup.findAll(name = 'td' , attrs = {'class': re.compile(r'[dn]2? underlineRow')}):
Все равно ничего не выдает.
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
05.09.2013, 19:21
код скопируй сюда
0
0 / 0 / 0
Регистрация: 31.07.2013
Сообщений: 47
05.09.2013, 19:33  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import lxml.html
import io
import urllib
import urllib.request as req
import requests
import re
from bs4 import BeautifulSoup
url = "http://rp5.ru/%D0%9F%D0%BE%D0%B3%D0%BE%D0%B4%D0%B0_%D0%B2_%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B4%D0%B0%D1%80%D0%B5,_%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B4%D0%B0%D1%80%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D1%80%D0%B0%D0%B9"
 
proxy=req.ProxyHandler({'http':r'http://@10.5.45.250:3128'})
auth = req.HTTPBasicAuthHandler()
opener = req.build_opener(proxy, auth, req.HTTPHandler)
req.install_opener(opener)
conn = req.urlopen(url)
soup = BeautifulSoup(conn.read(),from_encoding="utf-8")
 
test = soup.findAll(name = 'td' , attrs = {'class': re.compile(r'[dn]2? underlineRow')})
for t in soup.findAll(name = 'td' , attrs = {'class': re.compile(r'[dn]2? underlineRow')}):
    print(t)
Вот так.
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
05.09.2013, 21:02
прежняя версия
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/env python3
 
import urllib.request as req
import re
from bs4 import BeautifulSoup
 
url = "http://rp5.ru/%D0%9F%D0%BE%D0%B3%D0%BE%D0%B4%D0%B0_%D0%B2_%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B4%D0%B0%D1%80%D0%B5,_%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B4%D0%B0%D1%80%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D1%80%D0%B0%D0%B9"
 
conn = req.urlopen(url)
soup = BeautifulSoup(conn.read(),from_encoding="utf-8")
 
def f(tag):
    return tag.name == 'td' and \
           {'class', 'colspan'} == set(tag.attrs) and \
           len(tag.attrs['class']) == 2 and \
           re.search(r'^[dn]2?$', tag.attrs['class'][0]) and \
           tag.attrs['class'][1] == 'underlineRow' and \
           tag.text.strip()
    
for t in soup.findAll(f):
    print(t)
    print(re.search(r'\d{2}:\d{2}', str(t)).group())


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/env python3
 
import urllib.request as req
import re
from bs4 import BeautifulSoup
 
url = "http://rp5.ru/%D0%9F%D0%BE%D0%B3%D0%BE%D0%B4%D0%B0_%D0%B2_%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B4%D0%B0%D1%80%D0%B5,_%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B4%D0%B0%D1%80%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D1%80%D0%B0%D0%B9"
 
conn = req.urlopen(url)
soup = BeautifulSoup(conn.read(),from_encoding="utf-8")
 
def f(tag):
    return tag.name == 'td' and \
           {'class', 'colspan'} == set(tag.attrs) and \
           len(tag.attrs['class']) == 2 and \
           re.search(r'^[dn]2?$', tag.attrs['class'][0]) and \
           tag.attrs['class'][1] == 'underlineRow' and \
           tag.text.strip()
    
for t in soup.findAll(f):
    print(t)
    print(t.text)
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
[guest@localhost py]$ ./bs.py 
<td class="d underlineRow" colspan="2">16:00</td>
16:00
<td class="n2 underlineRow" colspan="2">22:00</td>
22:00
<td class="n underlineRow" colspan="2">04:00</td>
04:00
<td class="d2 underlineRow" colspan="2">10:00</td>
10:00
<td class="d2 underlineRow" colspan="2">16:00</td>
16:00
<td class="n2 underlineRow" colspan="2">22:00</td>
22:00
<td class="n underlineRow" colspan="2">04:00</td>
04:00
<td class="d2 underlineRow" colspan="2">10:00</td>
10:00
<td class="d2 underlineRow" colspan="2">16:00</td>
16:00
<td class="n2 underlineRow" colspan="2">22:00</td>
22:00
<td class="n underlineRow" colspan="2">04:00</td>
04:00
<td class="d2 underlineRow" colspan="2">10:00</td>
10:00
<td class="d2 underlineRow" colspan="2">16:00</td>
16:00
<td class="n2 underlineRow" colspan="2">22:00</td>
22:00
<td class="n underlineRow" colspan="2">04:00</td>
04:00
<td class="d2 underlineRow" colspan="2">10:00</td>
10:00
<td class="d2 underlineRow" colspan="2">16:00</td>
16:00
<td class="n2 underlineRow" colspan="2">22:00</td>
22:00
<td class="n underlineRow" colspan="2">04:00</td>
04:00
<td class="d2 underlineRow" colspan="2">10:00</td>
10:00
<td class="d2 underlineRow" colspan="2">16:00</td>
16:00
<td class="n2 underlineRow" colspan="2">22:00</td>
22:00
<td class="n underlineRow" colspan="2">04:00</td>
04:00
[guest@localhost py]$
1
0 / 0 / 0
Регистрация: 31.07.2013
Сообщений: 47
06.09.2013, 08:50  [ТС]
Спасибо большое!
Теперь буду разбираться с def f(tag).
Вы мне очень помогли.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.09.2013, 08:50

При передаче post запроса через прокси сервер в ответ приходят ошибки с прокси сервера
При передаче post запроса через прокси сервер в ответ прилетают ошибки с прокси сервера: &lt;p&gt;&lt;b&gt;Invalid Request&lt;/b&gt;...

Как работать через прокси-сервер?
Есть программа (IRC-клиент). Какие команды нужно посылать прокси (HTTP) чтоб установить соединение с IRC сервером и передавать/получать...

Как скрыть свой ip, через прокси сервер?
Я новичок, подскажите плз как скрыть свой ip, через прокси сервер (только по проще объясните и подробнее). Заранее спасибо!

Как настроить прокси сервер через терминал?
через терминала /etc/apt/apt.conf следующую запись Acquire::http :: proxy &quot;логин:пароль@ip_адрес:порт/&quot;; Acquire::https...

Как отправить e-mail через прокси-сервер?
Как отправить e-mail через прокси-сервер? Спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
47
Ответ Создать тему
Новые блоги и статьи
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru