python爬虫训练项目3-selenium模拟爬取

今天尝试用selenium+Beautifulsoup爬取,整体思路如下:

1.在搜索框输入搜索关键词并点击搜索(用selenium定位搜索框和 “ 搜索 “ 按钮)

2.对搜索页进行分析,首先先获取所有窗口句柄(window_handles)并跳转到搜索页(switch_into);其次判断搜索到的“ 总页数 ”(用beautifulsoup);这里有个特殊情况需要考虑:当关键词的搜索页只有1页时,是不会显示“ 总页数 ”的网页标签信息的,所以这里要添加页数判断(if...else...)

3.不管是搜索页只有一页还是有多页,都需要用到Beautifulsoup进行信息分析,然后用xlwt写入数据。

4.如果实现翻页呢,可以结合for循环以及第2步获取到的 "总页数"进行实现

注意事项

1.用selenium进行定位时,要注意你所选择的定位方式是否会随着页面而变化,例如:实现翻页动作,我们需要定位到” 下一页 ”的按钮,笔者这里选择的使用CSS_SELECTOR进行定位,因为每一页的” 下一页 ”的按钮的SELECTOR值是不变化的,读者可以自行用F12检查试一下;而如果用XPATH定位的话,你会发现每一页的XPATH值都不同,这就会导致出现“  无法翻页  ”的问题;

2.做爬虫分析的时候,可以设置异常捕获(try...except)用于处理可能出现的异常问题;

源码

# encoding: utf-8

"""
  @author 张奕滨
  @create 2021-11-6 11:50
  Mycsdn:https://blog.csdn.net/qq_39338064?spm=1000.2115.3001.5343
  @contact: 948183482@qq.com
  @software: Pycharm
  @file: bili学习.py
  @Version:1.0
  @仅供个人学习用途,切勿用于其他用途
"""
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
from selenium import webdriver
from time import sleep
import random
import time
import xlwt
import os
from bs4 import BeautifulSoup


# 获取当前用户桌面路径
def desktop_path():
    return os.path.join(os.path.expanduser(
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ethan奕诚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值