一、前提

爬虫网页(只是演示,切勿频繁请求):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. ps文件解析(纯c解析代码)

    参考链接:1. PS流的格式和解析总结 http://www.cnblogs.com/lihaiping/p/4181607.html  2. TS科普5 PES包解析 https://blog.cs ...

  2. Write CSV file for a dataset

    import numpy as np import cv2 as cv2 import os import csv dataste_path = 'datasets/pascal-parts/pasc ...

  3. 第一个jQuery

    第一个jQuery <script src = "jquery.js"> $(document).ready(function){ alert("Hello ...

  4. 构建--> 部署-->

    这一篇中我们会写一些关于自动化部署的代码.我们会使用 Powershell 书写这类代码. 你将发现这篇文章中涉及的东西非常具体,有的要求甚至相当苛刻且可能不具有通用性.这是因为部署从来都是跟环境打交 ...

  5. 使用mybatis-generator工具自动生成mybatis代码

    使用mybatis-generator工具自动生成mybatis代码 步骤如下: 1.引入maven  依赖,在项目pom.xml文件中添加 <plugin> <groupId> ...

  6. require和load的不同之处

    require和load最大的不同之处在于,require就算调用多次也不会重新加载已经加载过的文件.Ruby会持续追踪已经被请求的那些文件而不会重复加载它们.而load命令总是会加载所请求的命令,不 ...

  7. ionic3 应用内打开第三方地图导航 百度 高德

    1.安装检测第三方APP是否存在的插件 cordova plugin add cordova-plugin-appavailability --save npm install --save @ion ...

  8. 前端开发【第二篇: css】

    css概述 层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言.CSS ...

  9. Groovy学习笔记-布尔求值

    1.判断字符串为null或空字符串 def str = null if(str) println 'str is not null' else println 'str is null' str = ...

  10. java发送soapui格式的报文

    import java.io.*;import java.net.HttpURLConnection;import java.net.URL; 使用java对soapui报文进行发送 public c ...