一、前提

爬虫网页(只是演示,切勿频繁请求):https://www.kaola.com/

需要的知识:Python,selenium 库,PyQuery

参考网站:https://selenium-python-zh.readthedocs.io/en/latest/waits.html

二、简单的分析下网站

三、步骤

  1.目标:

    1.open brower

    2.open url

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
import time
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from pyquery import PyQuery as py
brower = webdriver.Chrome() //定义一个brower ,声明webdriver,调用Chrome()方法
wait = WebDriverWait(brower,20) //设置一个全局等待时间
brower.get("https://www.kaola.com/")

  

  2.搜索【年货】

def search():
try:
brower.get("https://www.kaola.com/")
     //红包
close_windows = wait.until(
EC.presence_of_element_located((By.XPATH,'//div[@class="cntbox"]//div[@class="u-close"]'))
)
     //输入框
input = wait.until(
EC.presence_of_element_located((By.CSS_SELECTOR,'#topSearchInput'))
)
//搜索
submit = wait.until(
EC.presence_of_element_located((By.XPATH,'//*[@id="topSearchBtn"]'))
)
close_windows.click()
input.send_keys('年货') time.sleep(2) submit.click()
     //获取年货所有的页数
total = wait.until(
EC.presence_of_element_located((By.CSS_SELECTOR,'#resultwrap > div.splitPages > a:nth-child(11)'))
)
return total.text
except TimeoutException:
return 'error'

  

  3.获取页面的信息

//使用pyQurey解析页面
def get_product():
wait.until(
EC.presence_of_element_located((By.XPATH,'//*[@id="result"]//li[@class="goods"]'))
)
html = brower.page_source
doc = py(html)
goods = doc('#result .goods .goodswrap')
for good in goods.items():
product = {
'image' : good.find('a').attr('href'),
'title':good.find('a').attr('title'),
'price':good.find('.price .cur').text()
}
print(product)
def main():
  get_product()
  brower.close

  

.....后续更新

【爬虫】如何用python+selenium网页爬虫的更多相关文章

  1. Python编写网页爬虫爬取oj上的代码信息

    OJ升级,代码可能会丢失. 所以要事先备份. 一開始傻傻的复制粘贴, 后来实在不能忍, 得益于大潇的启示和聪神的原始代码, 网页爬虫走起! 已经有段时间没看Python, 这次网页爬虫的原始代码是 p ...

  2. Python动态网页爬虫-----动态网页真实地址破解原理

    参考链接:Python动态网页爬虫-----动态网页真实地址破解原理

  3. Python 简单网页爬虫学习

    #coding=utf-8 # 参考文章: # 1. python实现简单爬虫功能 # http://www.cnblogs.com/fnng/p/3576154.html # 2. Python 2 ...

  4. 【网络爬虫】【python】网络爬虫(五):scrapy爬虫初探——爬取网页及选择器

    在上一篇文章的末尾,我们创建了一个scrapy框架的爬虫项目test,现在来运行下一个简单的爬虫,看看scrapy爬取的过程是怎样的. 一.爬虫类编写(spider.py) from scrapy.s ...

  5. 【网络爬虫】【python】网络爬虫(四):scrapy爬虫框架(架构、win/linux安装、文件结构)

    scrapy框架的学习,目前个人觉得比较详尽的资料主要有两个: 1.官方教程文档.scrapy的github wiki: 2.一个很好的scrapy中文文档:http://scrapy-chs.rea ...

  6. Python静态网页爬虫相关知识

    想要开发一个简单的Python爬虫案例,并在Python3以上的环境下运行,那么需要掌握哪些知识才能完成一个简单的Python爬虫呢? 爬虫的架构实现 爬虫包括调度器,管理器,解析器,下载器和输出器. ...

  7. Python学习---网页爬虫[下载图片]

    爬虫学习--下载图片 1.主要用到了urllib和re库 2.利用urllib.urlopen()函数获得页面源代码 3.利用正则匹配图片类型,当然正则越准确,下载的越多 4.利用urllib.url ...

  8. Python简单网页爬虫——极客学院视频自动下载

    http://blog.csdn.net/supercooly/article/details/51003921

  9. python静态网页爬虫之xpath(简单的博客更新提醒功能)

    直接上代码: #!/usr/bin/env python3 #antuor:Alan #-*- coding: utf-8 -*- import requests from lxml import e ...

随机推荐

  1. 原生Ajax实现异步交互

    实现Ajax主要依靠XMLHttpRequest对象,所以首先要创建XMLHttpRequest对象 function getXhr(){ var xhr = null; if(window.XMLH ...

  2. C# 遍历所有的子控件和孙控件,包括容器中的,并批量操作和调用

    这里要用两个知识,一个是递归,一个是队列. //定义一个Control类型的队列allCtrls private static Queue <Control> allCtrls = new ...

  3. spring jpa 语法

    摘自http://www.cnblogs.com/BenWong/p/3890012.html Table 2.3. Supported keywords inside method names Ke ...

  4. web APIS

    WEB API系列:   很多人都很迷惑,既然有了WCF为什么还要有WEB API?WEB API会不会取代WCF? 就我的看法,WCF提供的是一种RPC实现的集合,WCF的设计更多地考虑了SOA的场 ...

  5. Angular 2/4/5+ 重复点击菜单刷新界面

    记一下,网上没找到方法 自己搞了好久  通过跳转到别的界面在跳回来的方式进行实现             //再次点击刷新界面       if (this.router.url == item.ur ...

  6. vue-router路由传参

    da给我们点击父组件之后跳转到子组件之后,需要携带参数,便于子组件获取数据.传参方式有三种:一. getDescribe(id) { // 直接调用$router.push 实现携带参数的跳转 thi ...

  7. 今天写代码遇到了一个BUG

    在我们日常写注释是需要注意,在有返回值的里面不要用以下方式注释,不然不会报错,运行状态码返回也是200,但就不是想要的结果. 下面举个例子 return { 'token':token, 'user_ ...

  8. Jenkins-client模式配置

    Jenkins配置master-slave模式 本来想着先写一篇jenkins安装的流程,但是现在jenkins做的已经非常完善了,有.war文件,直接在tomcat启动即可,所以这里就不多说了,小白 ...

  9. Proxy代理模式(结构型)

    一:描述: 为其他对象提供一种代理,来控制对这个对象的访问.如当操作某个对象很复杂时,我们可以建个代理来操作复杂对象,并开放一些简单的接口/方法来让我们比较简单的间接操作,也可在代理层实现一些自己的业 ...

  10. xPath 用法总结整理

    xPath 用法总结整理   一.xpath介绍 XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. XPath 使用路径表达式在 XML ...