得看你用的是什么第三方库来解析的,如果是bs4,按照class名字来找,就这么写:
soup = BeautifulSoup(html, 'html.parser')
div = soup.find('div', {'class': 'hosinfo', 'hospname': '苏州市立医院本部'})
答案:
对于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可以提高效率。