python使用selenium访问古诗文网首页
时间: 2023-11-19 16:44:57 浏览: 72
可以使用以下代码:
```python
from selenium import webdriver
# 创建Chrome浏览器实例
driver = webdriver.Chrome()
# 访问古诗文网首页
driver.get("https://www.gushiwen.org/")
# 关闭浏览器
driver.quit()
```
记得要先安装好Selenium和Chrome浏览器,并将Chrome驱动程序的路径配置好。
相关问题
selenium 登录古诗文网
Selenium 是一个广泛使用的自动化测试工具,它支持模拟用户操作,包括浏览器导航、表单填写、点击等。如果你想使用 Selenium 来登录古诗文网,你需要按照以下步骤操作:
1. **安装所需库**:首先需要安装 Python 的硒库(selenium WebDriver),可以使用 pip 安装 `webdriver_manager` 和 `selenium`。
```bash
pip install webdriver_manager selenium
```
2. **下载驱动**:由于古诗文网通常使用特定版本的浏览器(如 Chrome 或 Firefox),你需要下载对应的WebDriver(比如 chromedriver 或 geckodriver)。可以从官网下载对应浏览器的最新版:https://sites.google.com/a/chromium.org/chromedriver/downloads
3. **初始化浏览器和登录过程**:
- 导入必要的模块并初始化浏览器实例。
- 访问古诗文网的登录页面。
- 使用 `find_element_by_*` 方法找到登录表单元素,如用户名输入框(`id="username"`)、密码输入框(`id="password"`)和登录按钮。
- 输入用户名和密码。
- 调用 `submit()` 或 `click()` 方法提交表单。
```python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
# 初始化Chrome浏览器
driver = webdriver.Chrome(ChromeDriverManager().install())
# 让浏览器打开古诗文网登录页面
driver.get("https://www.gushiwen.org/login")
# 找到登录元素并输入用户名和密码
username_field = driver.find_element_by_id("username")
username_field.send_keys("your_username")
password_field = driver.find_element_by_id("password")
password_field.send_keys("your_password", Keys.RETURN) # 按回车键提交
# 点击登录按钮
login_button = driver.find_element_by_css_selector(".login-btn") # 根据实际CSS选择器定位
login_button.click()
# 确认是否登录成功,检查跳转后的页面内容
# ...
# 关闭浏览器
driver.quit()
```
记得将 "your_username" 和 "your_password" 替换为你的账户信息。登录成功后,可以根据页面结构判断登录是否成功。
模拟登录“古诗文网”:用自己的用户名和密码登录后,爬取个人收藏列表的古诗的名字和作者
好的,这个问题可以通过模拟登录古诗文网,并爬取个人收藏列表来解决。以下是实现的步骤:
1. 导入必要的库:requests、BeautifulSoup、re、json、time、selenium
2. 使用selenium模拟登录古诗文网,获取登录后的cookies
3. 使用requests库发送请求,带上cookies获取个人收藏列表页面的HTML内容
4. 使用BeautifulSoup解析HTML内容,获取收藏列表中每首古诗的链接
5. 使用requests库发送请求,获取每首古诗的具体页面HTML内容
6. 使用正则表达式或BeautifulSoup解析HTML内容,获取古诗的名字和作者
以下是代码实现的详细步骤:
```python
import requests
from bs4 import BeautifulSoup
import re
import json
import time
from selenium import webdriver
# 设置登录账号和密码
username = "your_username"
password = "your_password"
# 使用selenium模拟登录获取cookies
login_url = "https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx"
driver = webdriver.Chrome()
driver.get(login_url)
driver.find_element_by_id("email").send_keys(username)
driver.find_element_by_id("pwd").send_keys(password)
driver.find_element_by_id("denglu").click()
time.sleep(5)
cookies = driver.get_cookies()
cookies_dict = {}
for cookie in cookies:
cookies_dict[cookie['name']] = cookie['value']
# 使用cookies发送请求获取收藏列表页面的HTML内容
collection_url = "https://so.gushiwen.cn/user/collect.aspx"
response = requests.get(collection_url, cookies=cookies_dict)
html = response.text
# 使用BeautifulSoup解析HTML内容,获取收藏列表中每首古诗的链接
soup = BeautifulSoup(html, "html.parser")
poems = soup.find_all("div", class_="sons")
poem_links = []
for poem in poems:
link = poem.find("a")["href"]
poem_links.append("https://so.gushiwen.cn" + link)
# 使用requests库发送请求,获取每首古诗的具体页面HTML内容,并使用正则表达式或BeautifulSoup解析HTML内容,获取古诗的名字和作者
for link in poem_links:
response = requests.get(link, cookies=cookies_dict)
html = response.text
soup = BeautifulSoup(html, "html.parser")
title = soup.find("div", class_="cont").find("h1").text.strip()
author = soup.find("div", class_="cont").find("p", class_="source").text.strip()
author = re.sub(r"\s+", " ", author).split(" ")[0][:-1]
print(title, author)
```
这样就可以成功爬取个人收藏列表中的古诗的名字和作者了。
阅读全文