在做Python爬虫的时候,对于直接呈现的网站可以直接使用网页内容。
直接呈现是指在打开网页之后,右键查看源码可以看到网页的内容,
若看到的js但是没有实际的内容,则表示该网页为动态加载,
这时候就不能直接使用requsts获取网页内容。
遇到这种情况有两种情况:
1、可以通过查看网页请求获取请求数据接口的方式,若接口未进行加密以及权限二次编码验证,则也可以直接使用。
2、若是动态网站且无法正常通过数据接口访问,则就需要使用selenium模拟浏览器对数据资料进行获取。当然selenium主要是做网页自动化的事情。本篇只简单的实例介绍
# -*- codeing = utf-8 -*-
# @Time : 2024/6/18 0018 19:23
# @Author : Kevin
# @File : selenium学习.py
# @Software : PyCharm
import time
from selenium import webdriver
from selenium.webdriver.common.by import By #文档元素查找方式
#创建Chrome对象
browser = webdriver.Chrome()
#根据网址获取网页内容
browser.get('http://liuyan.people.com.cn/messageSearch')
#获取到网页标签
'''
获取标签的方式有很多种,可以通过id、name、xpath等方式获取
'''
searchBox = browser.find_element(By.XPATH,'/html/body/div[1]/div[2]/main/div/div/div[3]/div/form/div/div[1]/div/div/div/input')
#将获取到的文本框填入内容
searchBox.send_keys('北京市')
#点击查询按钮
browser.find_element(By.XPATH,'/html/body/div[1]/div[2]/main/div/div/div[3]/div/form/div/div[6]/button').click()
time.sleep(1)
print(browser.page_source)
获取到网页内容之后则可以进行自由操作了。