python 操作网页

img


用python.操作网页,请问小伙伴看下如果这种对象怎么选择

得看你用的是什么第三方库来解析的,如果是bs4,按照class名字来找,就这么写:

soup = BeautifulSoup(html, 'html.parser')
div = soup.find('div', {'class': 'hosinfo', 'hospname': '苏州市立医院本部'})

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7682928
  • 你也可以参考下这篇文章:Python游戏开发,Python实现贪吃蛇小游戏与吃豆豆 附带源码
  • 同时,你还可以查看手册:python-通用操作系统服务 中的内容
  • 除此之外, 这篇博客: python制作猫和老鼠游戏我觉得可以学一手@中的 猫和老鼠python小游戏 运行截图 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 您还可以看一下 王智勇老师的Python语言从入门到精通课:从零基础快速入门视频课程课程中的 Python语言介绍小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    答案:

    对于Python中对网页的操作,可以使用第三方库selenium和BeautifulSoup。

    selenium可以模拟浏览器行为,可以自动打开网页、填写表单、提交表单、点击、拖拽、甚至还可以截图,非常强大。

    具体可以按照以下步骤操作: 1. 安装selenium库:pip install selenium 2. 安装ChromeDriver。需要根据Chrome浏览器版本安装对应的ChromeDriver,下载地址:http://npm.taobao.org/mirrors/chromedriver/ 3. 编写代码,以获取网页内容为例:

    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    driver = webdriver.Chrome() # 指定使用Chrome浏览器
    driver.get("https://www.baidu.com") # 打开网页
    elem = driver.find_element_by_name("wd") # 定位搜索框
    elem.clear() # 清空搜索框
    elem.send_keys("Python") # 输入搜索关键字
    elem.send_keys(Keys.RETURN) # 模拟回车
    print(driver.page_source) # 打印网页内容
    driver.close() # 关闭浏览器
    

    注:需要将ChromeDriver的路径加入系统环境变量中,才可以使用该方法。

    如果只是对网页内容进行搜索和解析,可以使用BeautifulSoup库,该库可以帮助我们方便地从HTML文本中提取信息,例如页面元素内容、链接地址等,可以帮助我们快速获取所需要的信息。

    安装方式:pip install beautifulsoup4

    具体使用步骤如下:

    from bs4 import BeautifulSoup
    import requests
    
    url = "https://www.baidu.com"
    r = requests.get(url)
    soup = BeautifulSoup(r.text, 'html.parser')
    print(soup.title.string) # 打印网页标题
    

    其中url为需要爬取的网页地址,r返回网页的响应内容,soup是BeautifulSoup返回的解析对象,通过这个对象我们可以通过标签名、属性名等信息来获取需要的内容。以上代码可以获取百度首页的标题。如果要获取其他信息可以根据需要对代码进行修改,例如如果想获取页面所有的超链接,可以使用如下代码:

    links = soup.find_all('a')
    for link in links:
        print(link.get('href'))
    

    注:BeautifulSoup默认使用html.parser作为解析器,如果要解析XML文档可以使用lxml或者xml作为解析器。

    针对需要选择的对象,可以根据标签名、类名、属性等信息进行查找,具体方法可以参考BeautifulSoup的文档。

    完整代码如下:

    from bs4 import BeautifulSoup
    import requests
    
    url = "https://www.baidu.com"
    r = requests.get(url)
    soup = BeautifulSoup(r.text, 'html.parser')
    print(soup.title.string) # 打印网页标题
    
    # 根据标签查找元素
    elem = soup.find('input')
    print(elem)
    
    # 根据类名查找元素
    elems = soup.find_all(class_="s-tab")
    for elem in elems:
        print(elem.text)
    
    # 根据属性查找元素
    elem = soup.find("a", attrs={"data-click": "toindex"})
    print(elem.text)
    

    以上代码可以帮助我们快速从网页中获取所需要的信息,对于需要进行前端界面测试或者批量爬取网页等场景,使用selenium和BeautifulSoup可以提高效率。