Python 编写脚本,为啥链接chrome进不去搜索的界面呢?

img


Python 编写脚本,为啥链接chrome进不去搜索的界面呢?

tb是要求先登录才能搜索的
而登录又有反爬的措施

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7632367
  • 这篇博客也不错, 你可以看下Python爬虫之chrome在爬虫中的使用
  • 除此之外, 这篇博客: 使用Python去除Chrome重复、无效的书签链接中的 脚本 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • # -*- coding: utf-8 -*-
    import os
    import json
    import requests
    
    
    def read_file():
        """读取书签文件内容"""
        # 书签路径
        google_fav_file_path = 'C:/Users/sheng/AppData/Local/Google/Chrome/User Data/Default/Bookmarks'
        if os.path.exists(google_fav_file_path):
            with open(google_fav_file_path, 'rb') as r:
                goog_fav = r.read().decode('utf-8')
        return goog_fav
    
    
    def get_bookmark_total(bookstr):
        """将书签文件转换成Python字典"""
        if len(book_str):
            book_json = json.loads(book_str)
    
        # 得到主要内容
        children_bar = book_json['roots']['bookmark_bar']['children']
        return children_bar
    
    
    def get_detail(children: list, name, index):
        """递归解析书签信息"""
        if len(children) > 0:
            for child in children:
                if 'children' in child and child.get('type') == 'folder':
                    # 书签文件夹,进行递归解析
                    get_detail(child.get('children'), f'{name} -- {child.get("name")}', index+1)
    
                if child.get('type') == 'url':
                    # 书签URL,进行去重判断
                    print_complex_url(index, name, child.get('name'), child.get('url'))
    
    
    total_fav = dict()
    def print_complex_url(index, direct, name, url):
        """按照书签名检查是否重复"""
        if f'{name}' in total_fav:
            # 重复
            if index >= total_fav.get(f'{name}')[0]:
                print(direct, name)
            else:
                print(total_fav.get(f'{name}')[1], name)
                total_fav[f'{name}'] = [index, direct, name, url]
        else:
            # 不重复
            total_fav[f'{name}'] = [index, direct, name, url]
    
    
    def is_bookmarks_active():
        """检查去重后的书签是否有效"""
        for key in total_fav:
            url = total_fav.get(key)[3]
            is_ok = is_url_ok(url)
            if is_ok in [-1, -2, -3]:
                print(total_fav.get(key)[1], key)
    
    
    def is_url_ok(url):
        """判断URL是否有效"""
        try:
            resu = requests.get(url, timeout=5)
            if resu.status_code == 200:
                # 正常
                return 0
            else:
                return -3
        except requests.exceptions.ConnectionError as e:
            return -1
        except Exception as e:
            return -2
    
    
    if __name__ == '__main__':
        book_str = read_file()
        children_bar = get_bookmark_total(book_str)
        # print(type(children_bar))
        get_detail(children_bar, 'root', 0)
        print('检查书签重复完成')
        is_bookmarks_active()
    
    
    
  • 您还可以看一下 王涛老师的150讲轻松学习Python网络爬虫课程中的 实战演练-用Chrome分析网页小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    缺少了你需要在浏览器上使用selenium模块自动化控制浏览器来实现搜索。在你的现有脚本中,只是读取了Chrome浏览器的书签文件,并对这些URL进行了一些操作。如果你需要跳转到搜索页面,可以使用selenium模块以以下步骤实现:

    1. 安装selenium模块,可以通过pip install selenium来安装;

    2. 从selenium模块中导入webdriver;

    3. 首先创建chrome_driver的实例;

    4. 使用get方法去访问你需要的网站的链接;

    5. 在Python中输入一些字符,然后通过webdriver找到搜索框并向它输入这些内容;

    6. 可以使用webdriver对象的click()方法单击搜索按钮,屏幕将滚动到搜索结果页面,并显示搜索结果。

    下面是可能实现该脚本的Python代码片段:

    from selenium import webdriver
    
    # 打开Chrome浏览器
    driver = webdriver.Chrome()
    
    # 获取Chrome浏览器窗口
    driver.get("https://www.baidu.com")
    
    # 获取搜索框对象
    search_text = driver.find_element_by_id("kw")
    
    # 输入文本内容
    search_text.send_keys("自然语言处理")
    
    # 获取“百度一下”按钮并单击它
    start_search = driver.find_element_by_id("su")
    start_search.click()
    

    这将启动Chrome浏览器并打开百度搜索页面,然后自动输入"自然语言处理"并单击"百度一下"按钮。请注意,这只是基本示例代码,你需要根据你自己的实际需要进行修改,例如更改搜索关键字和查找元素的方法(例如使用class name或xpath等)。