【爬虫】如何用python+selenium网页爬虫

一、前提

爬虫网页(只是演示,切勿频繁请求):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

  

.....后续更新

原文地址:https://www.cnblogs.com/totoro-cat/p/10286302.html

时间: 2024-10-09 13:13:57

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

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

OJ升级,代码可能会丢失. 所以要事先备份. 一开始傻傻的复制粘贴, 后来实在不能忍, 得益于大潇的启发和聪神的原始代码, 网页爬虫走起! 已经有段时间没看Python, 这次网页爬虫的原始代码是 python2.7版本, 试了一下修改到3.0版本, 要做很多包的更替,感觉比较烦,所以索性就在这个2.7版本上完善了. 首先观赏一下原始代码,我给加了一些注释: # -*- coding: cp936 -*- import urllib2 import urllib import re import

python静态网页爬虫实例01

前些日子学习了一些爬虫知识,鉴于时间较短,就只看了静态网页爬虫内容,而有关scrapy爬虫框架将在后续继续探索. 以下以重庆市统计局官网某页面爬取为例(http://tjj.cq.gov.cn/tjsj/sjjd/201608/t20160829_434744.htm): 0.程序代码 1 import requests 2 from bs4 import BeautifulSoup 3 4 headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10

Python静态网页爬虫相关知识

想要开发一个简单的Python爬虫案例,并在Python3以上的环境下运行,那么需要掌握哪些知识才能完成一个简单的Python爬虫呢? 爬虫的架构实现 爬虫包括调度器,管理器,解析器,下载器和输出器.调度器可以理解为主函数的入口作为整个爬虫的头部,管理器实现包括对URL是否重复进行 判断,将已经爬到的URL加入到列表防止重复爬取.解析器则是对网页内容进行解析,解析出新的URL和网页内容.下载器则是下载解析器解析出的URL.输 出器则是顾名思义. 1.1 调度器 我的理解为类似主函数的入口,可以启

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

爬虫学习--下载图片 1.主要用到了urllib和re库 2.利用urllib.urlopen()函数获得页面源代码 3.利用正则匹配图片类型,当然正则越准确,下载的越多 4.利用urllib.urlretrieve()下载图片,并且可以重新命名,利用%S 5.应该是运营商有所限制,所以未能下载全部的图片,不过还是OK的 URL分析: 源码: #coding=utf-8 import re import urllib def getHtml(url): page=urllib.urlopen(u

Python 简单网页爬虫

网上的妹子图爬虫:只爬取一个人物相册 import requests from bs4 import BeautifulSoup headers = { 'User-Agent':'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)', 'Referer':'http://www.mzitu.com' } # 初始链接 start_url = 'https://www.mzitu.com/161470' start_html = requests

Python简单网页爬虫

由于Python2.x与Python3.x存在很的差异,Python2.x调用urllib用指令urllib.urlopen(), 运行时报错:AttributeError: module 'urllib' has no attribute 'urlopen' 原因是在Python3.X中应该用urllib.request. 下载网页成功后,调用webbrowsser模块,输入指令webbrowsser .open_new_tab('baidu.com.html') true open('bai

python静态网页爬虫之xpath

常用语句: 1.starts-with(@属性名称,属性字符相同部分)使用情形: 以相同的字符开头 <div id = 'test-1'>需要的内容1</div> <div id = 'test-2'>需要的内容2</div> <div id = 'test-3'>需要的内容3</div> selector = etree.HTML(html) content = selector.xpath('//div[start-with(@i

Python 3网络爬虫开发实战书籍

Python 3网络爬虫开发实战书籍,教你学会如何用Python 3开发爬虫 本书介绍了如何利用Python 3开发网络爬虫,书中首先介绍了环境配置和基础知识,然后讨论了urllib.requests.正则表达式.Beautiful Soup.XPath.pyquery.数据存储.Ajax数据爬取等内容,接着通过多个案例介绍了不同场景下如何实现数据爬取,*后介绍了pyspider框架.Scrapy框架和分布式爬虫. 很多初学者,对Python的概念都是模糊不清的,Python能做什么,学的时候,

开源爬虫汇总表,83款 网络爬虫开源软件

世界上已经成型的爬虫软件多达上百种,本文对较为知名及常见的开源爬虫软件进行梳理,按开发语言进行汇总,如下表所示.虽然搜索引擎也有爬虫,但本次我汇总的只是爬虫软件,而非大型.复杂的搜索引擎,因为很多兄弟只是想爬取数据,而非运营一个搜索引擎. 开源爬虫汇总表 开发语言 软件名称 软件介绍 许可证 Java Arachnid 微型爬虫框架,含有一个小型HTML解析器 GPL crawlzilla 安装简易,拥有中文分词功能 Apache2 Ex-Crawler 由守护进程执行,使用数据库存储网页信息