937135952 发表于 2020-9-8 20:56:50

关于代理ip没用上的问题

import requests
from bs4 import BeautifulSoup
from lxml import etree
from cnsenti import Sentiment
import jieba
import smtplib
from email.mime.text import MIMEText
import os
import time

#——————————————————————————————————————————————————————————————————————————————————构建自创字典部分
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

fromselenium.webdriver.common.keys import Keys
fromselenium.webdriver.common.by importBy
from selenium.webdriver.support.ui importWebDriverWait #等待一个元素加载完成
fromselenium.webdriver.support importexpected_conditions as EC

from selenium.webdriver.common.action_chains import ActionChains#引入鼠标操作

import json

def test2():
    url='http://guba.eastmoney.com/news,ustsla,962896962.html'
   
    proxiess={'https': '100.100.7.100:3000'}
   
    headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.226.188.131:4216 Safari/537.36',
    'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language':'en-US,en;q=0.5',
    'Accept-Encoding':'gzip',
    'DNT':'1',
    'Connection':'close'
    }
   
    #r = requests.get(url, headers=headers)
    r = requests.get(url,proxies=proxiess)   
    r.encoding = 'utf-8'
    html = etree.HTML(r.text)#etree.HTML():构造了一个XPath解析对象并对HTML文本进行自动修正。
    result = html.xpath('//div/p/text()')#('//div[@id="mainNewsContent"]/p/text()')
   
    #处理文本   
    result = str(result)
    result2 = result.replace('\\u3000','')
    print(result2)


def test():
    url = 'https://www.baidu.com/'
    #url = 'http://guba.eastmoney.com/default,1_1.html'
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.226.188.131:4216 Safari/537.36',
            'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
            'Accept-Language':'en-US,en;q=0.5',
            'Accept-Encoding':'gzip',
            'DNT':'1',
            'Connection':'close'
            }
    proxiess={'https': '100.100.7.100:3000'}
   
    try:   
      page = requests.get(url,proxies=proxiess)
      print(str(proxiess)+"此ip有效")
    except:
      print(str(proxiess)+"此ip无效")

   
test()
test2()



由于代理ip是乱打的,所以test()中无法访问百度
而test2()中却能正常访问页面,请教各位大佬是什么原因...又应该如何解决呢?

suchocolate 发表于 2020-9-9 11:27:54

用你的test()下的代码可以访问百度。

不过如果你要访问百度页面获取数据的话,那得加header,和cookie。

937135952 发表于 2020-9-9 15:12:27

suchocolate 发表于 2020-9-9 11:27
用你的test()下的代码可以访问百度。

不过如果你要访问百度页面获取数据的话,那得加header,和cookie。 ...

为什么我运行的结果就是
ProxyError: HTTPSConnectionPool(host='www.baidu.com', port=443): Max retries exceeded with url: / (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x00000173A645EF48>: Failed to establish a new connection: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。')))

这个ip明显是不可用的,怎么能来访问网页呢...
页: [1]
查看完整版本: 关于代理ip没用上的问题