0 / 0 / 0
Регистрация: 31.07.2013
Сообщений: 47

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

02.09.2013, 17:21. Показов 190543. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru