木三136 2021-03-29 19:49 采纳率: 78.9%
浏览 46
已采纳

python 爬虫 还是 关于知乎的 问题

具体 就是我用selenium访问知乎 然后想搜索某篇文章 提示 似乎出了点什么 问题

   

代码在这里

#-*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver import ChromeOptions
import os
import json
import time


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

    browser = webdriver.Chrome(executable_path='../chromedriver.exe',options=option)

    goal_url = 'https://www.zhihu.com/'
    #未携带Cookies
    browser.get('https://www.zhihu.com/')
    return goal_url, browser


def log_ZHIHU(browser,goal_url):
    # 从本地读取cookies
    with open('ZhiHu_cookies.txt', 'r', encoding='utf8') as f:
        listCookies = json.loads(f.read())
    for cookie in listCookies:
        cookie_dict = {
            'domain': '.zhihu.com',
            'name': cookie.get('name'),
            'value': cookie.get('value'),
            'path': '/',
            'httpOnly': False,
            'secure': False
        }

        browser.add_cookie(cookie_dict)
    browser.maximize_window()
    #测试用搜索
    browser.refresh() #刷新网页
    return browser
def Seracr(browser):
    Seracr_Input=browser.find_element_by_class_name('Input')
    Text=input("输入你想搜索的文章的内容")
    Seracr_Input.send_keys(Text)
    time.sleep(5)
    Seracr_Button=browser.find_element_by_class_name('Button')
    Seracr_Button.click()

if __name__ == '__main__':
    tur = browser_initial()
    bro=log_ZHIHU(tur[1],tur[0])
    Seracr(bro)
  • 写回答

5条回答 默认 最新

  • 木三136 2021-05-29 09:12
    关注

    之前解决了问题忘了写答案了,现在补上一下

    解决思路就是通过使用一个已经打开了的浏览器,来避免知乎发现是使用的selenium模块

    添加如下代码即可

    
        option = ChromeOptions()
        option.debugger_address ="127.0.0.1:9222"
        browser = webdriver.Chrome(executable_path='chromedriver.exe的路径',options=option)
        #需要注意的是要使用 popen 来运行命令 如果使用 system 会出错
        os.popen('chrome.exe --remote-debugging-port=9222 --user-data-dir="Chrome的路径"')
    

    解决方法来自https://blog.csdn.net/qq254271304/article/details/103493969这位大佬的博客 

     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用