题目描述

下拉菜单选项无法提取成列表以及不能够被点击,请帮忙分析看一下什么原因

题目来源及自己的思路

对于app移动掌上营业厅抓包后,PC端的爬虫过程。

第一步:进入首页,点击”更多”

第二步:下拉“全部”菜单(原以为“全部”这个元素为按钮,编写的程序不能进行点击)

第三步:遍历这个城市的各个区域,对各区域营业厅的名称、地址、电话进行信息爬取(还需遍历点击“进店逛逛”这个元素才能进入信息界面,该功能通过模拟点击可以实现)

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

import scrapy

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from YDapp.items import YdappItem

class YdNjSpider(scrapy.Spider):

name = 'YD_NJ'

# headers = {

#    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36',

# }

def start_requests(self):

# 省内13个大市营业厅主页列表

urls =[

"https://wap.js.10086.cn/zzd/newMap/ininMap?latY=31.311746&lngX=120.620912&cityCode=11"

]

for url in urls:

yield scrapy.Request(url=url, callback=self.parse)

def __init__(self):

self.browser = webdriver.Chrome()

self.wait = WebDriverWait(self.browser, 10)

# def closed(self, spider):

#     print("spider closed")

#     self.browser.close()

def parse(self, response):

self.browser.get(response.url)

#print(response.url)

print(self.browser.page_source)

#查看标签是否被隐藏(首页营业厅信息)

yytinfo=self.browser.find_element_by_css_selector('#yytInfo')

# 如果输出为FALSE就是被隐藏

print(yytinfo.is_displayed())

# 确认“更多”元素是否加载

input = self.wait.until(

EC.presence_of_element_located((By.CSS_SELECTOR, '#infoTab1 > div.index-more > a'))

)

#查看是否能够被点击

submit = self.wait.until(

EC.element_to_be_clickable((By.CSS_SELECTOR, '#infoTab1 > div.index-more > a'))

)

#点击

submit.click()

# 阶段性反馈

print('ok')

#输出该页源码,此处存在跳转更多页面不稳定的情况

# 等待跳转页面内容加载

input1 = self.wait.until(

EC.presence_of_all_elements_located((By.CSS_SELECTOR, 'body > div > div.index-box > div'))

)

print(self.browser.page_source)

#以上代码执行没有问题,主要是下面

# 必须确认该页所有“区域”名单是否加载,“全部”按键从JS代码中发现实际不需要点击,故直接嵌套式遍历区域按钮并进行点击

submit1 = self.wait.until(

EC.presence_of_all_elements_located((By.CSS_SELECTOR, 'li[name = "cityAreaId"]'))

)

#查找所有标签为[li],name=cityAreaId的内容放入列表Regions

Regions = self.wait.until(

EC.presence_of_all_elements_located((By.CSS_SELECTOR, 'li[name = "cityAreaId"]'))

)

#输出查看,此处报错

print(Regions)

你期待的结果是什么?实际看到的错误信息又是什么?

遇到的问题:

1.有时候模拟打开浏览器的过程中会遇到如下图的情况,左下角出现JavaScript.void(0)而终止进程。

2.目前能够执行到如图所示界面,就是能够进行两次点击跳转,在选取区域这边遇到瓶颈无法解决:

后续代码再进行补充,望指点!

python爬虫模拟点击下拉菜单和_python+selenium爬虫过程中的模拟点击问题相关推荐

  1. 点击下拉菜单以外区域,下拉菜单收起

    点击下拉菜单以外区域,下拉菜单收起 网页中下拉菜单随处可见,一般用到toggle()或slideToggle()事件:但下拉菜单出来后,一般要再次点击原来的按钮才能收起,所以做到下拉菜单以外点击收起, ...

  2. 原生JS实现点击下拉菜单

    接上一篇博文,这里实现点击下拉菜单. 与悬停不同的是,悬停的操作都是hover,直接写入CSS即可,这里需要将静态和动态样式分离,再JS添加点击事件,使用排他法绑定给目标元素特定的样式. 具体实现见下 ...

  3. figma制作点击下拉菜单

    在原型设计时想要实现点击弹出下拉菜单,然后查阅网上的资料也很少.所以只能自己摸索. 完成后做一个记录,供浏览查看 目标效果 制作效果如下: 先制作一个卡片,将其转换为组件(在图层上显示为菱形) 然后在 ...

  4. html左侧导航栏点击下拉菜单,HTML+CSS实现下拉菜单

    HTML+CSS实现简单下拉菜单 HTML+CSS实现简单的下拉列表 1.下拉列表实例 代码如下: *{ margin:0; padding:0; text-decoration:none; list ...

  5. js点击下拉菜单申请a3_js下拉菜单语言选项简单实现

    旗子图片 (function($) { var jSelect = $(".jsSelect"); $(jSelect).find("li:first").ho ...

  6. 删除右键文件下拉菜单(非打开方式)中的wine选项

    cd ~/.local/share/applications/wine/Programs rm -r 相关文件夹即可

  7. HTML/CSS 如何做下拉框(下拉菜单)?

    一.什么是下拉框 下拉菜单通常使用在鼠标过程中,当鼠标悬停是出现一个下拉的菜单. 二.如何用代码做下拉框 详细操作如下: <!DOCTYPE html> <html lang=&qu ...

  8. python三级联动菜单_Excel–这才是三级联动下拉菜单的正确做法

    Excel–这才是三级联动下拉菜单的正确做法,跟二级联动菜单完全不同! 文章来源:企鹅号 - Excel学习世界 今天教大家制作三级联动下拉菜单. 很多同学以为三级联动下拉做法跟二级联动下拉菜单是一样 ...

  9. Bootstrap使用 .dropdown-menu 类创建下拉菜单

    下拉菜单 下拉菜单是一种非常常见的效果,用于展示可切换.有关联的一组链接,它可以节省网页排版空间,使网页布局简洁有序. Bootstrap内置了一套完整的下拉菜单组件,可用于不同的元素,如导航.按钮等 ...

最新文章

  1. 手把手教你学Kotlin (1): JetBrains的Kotlin Educational Tool下载、安装和 Kotlin Koans的安装和使用
  2. 贪心、递归、递推以及动态规划算法的分析与对比
  3. 高通android开源代码下载
  4. 【Flask】创建一个蓝图
  5. 带你学python基础:模块和包
  6. 【C++深度剖析教程29】C++对象模型分析下
  7. 俄罗斯博士用树莓派自制灭蚊武器!
  8. mysql手动同步_MySql数据库主从手动同步
  9. Change Eclipse Tooltip's Color in Ubuntu
  10. 苹果硬件技术高级副总裁揭露:自研 M1 太难了
  11. flume handler
  12. Google code android开源项目(一)
  13. c语言分析工具——函数调用关系生成图像、流程图生成器
  14. 初中向局里申请计算机报告,物资申请报告格式
  15. 将CDlinux 0.9.7.1的iso安装到U盘并安装grub2
  16. python绘画海贼王_Python入门之生成海贼王云图
  17. 互联网时代“陨落”,国家发布元宇宙战略的信号对失业和担心失业的我们带来了什么启迪?
  18. Js篇-面试题9-请说一下Js中的事件循环机制
  19. 日历---C++封装一个Date类,Calendar类,实现简单的日历+日期计算器程序
  20. GIS开发:分享NASA火灾地图(FIRMS Fire Map)

热门文章

  1. STM32工作笔记0026---平时说的电气烧了是什么意思
  2. Web前端工作笔记012---IE8兼容_WebSocket
  3. JAVA IOC及代理模式
  4. ASP.NET+MVC自学材料
  5. 杭电1434 幸福列车
  6. 杭电1285确定比赛名次
  7. 服务器 交换机的维护,服务器路由器交换机维护设置
  8. tomcat源码分析_CVE-2020-9484 tomcat session反序列化漏洞分析
  9. 玩客云pc端_玩客云电脑客户端-玩客云pc端下载 v1.4.5.112官方版--pc6下载站
  10. android poi读写,Android-android中怎样使用poi