木三136 2021-03-30 16:03 采纳率: 78.9%
浏览 28
已采纳

python 爬虫 遇到一个不知道该怎么说的一个问题

 这是 代码

import random

from selenium import webdriver
from selenium.webdriver import ChromeOptions
import json


def browser_initial():
    """"
    进行浏览器初始化
    """

    # 导入避免被发现是selenium的工具
    option = ChromeOptions()
    option.add_experimental_option('excludeSwitches', ['enable-automation'])

    PROXY = '"'+get_ip()+'"'
    chrome_opt = webdriver.ChromeOptions()
    chrome_opt.add_argument('--proxy-server=%s' % PROXY)
    browser = webdriver.Chrome(executable_path='../chromedriver.exe', chrome_options=chrome_opt,options=option)
    # 未携带cookies打开网页
    browser.get('https://www.taobao.com/')
    return  browser




def log_taobao(browser):
    """
    从本地读取cookies并登录目标网页
    """
    # 从本地读取cookies
    with open('taobao_cookies.txt', 'r', encoding='utf8') as f:
        listCookies = json.loads(f.read())

    for cookie in listCookies:
        cookie_dict = {
            'domain': '.taobao.com',
            'name': cookie.get('name'),
            'value': cookie.get('value'),
            'path': '/',
            "expires": '',
            'sameSite': 'None',
            'secure': cookie.get('secure')
        }
        browser.add_cookie(cookie_dict)

    # 更新cookies后进入目标网页
    # browser.get(goal_url)
    # time.sleep(50)
    # browser.close()
    browser.refresh() #刷新网页

def get_ip():
    with open('./ip.text', 'r', encoding='utf8') as f:
        ip_list = json.loads(f.read())

    num = random.randint(0, len(ip_list))
    str ="{0}:{1}".format(ip_list[num].get('ip'), ip_list[num].get('port'))
    return str

if __name__ == '__main__':
    tur = browser_initial()
    browser=log_taobao(tur)
    #browser.get(tur[0])

这是提示的错误

可以确定的是 应该不是cookies多余的问题  原因是当我不使用get_ip这个函数获取ip时,程序可以正常运行

  • 写回答

1条回答 默认 最新

  • coagenth 2021-03-30 16:45
    关注

    PROXY = '"'+get_ip()+'"'这样写的是错的应该写成PROXY = get_ip(),因为get_ip()返回的已经是字符串。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?