1.目标
利用Selenium抓取当当网图书并用正则表达式获取到得到商品的图片、名称、价格、评论人数信息。
2.开发环境
python2.7 +windows10 +pycharm

3.页面分析

如图,其中包含商品的图片、名称、价格、评论人数信息。
抓取入口就是当当网主页,主页链接可以通过直接构造参数访问。然后在搜索框中输入“日语”,呈现的就是第一页的搜索结果。
在页面下方,有一个分页导航,其中既包括前6页的链接,也包括下一页的链接,同时还有一个任意页码跳转的链接,如下图所示。
商品的搜索结果为100页,要获取每一页的内容,只需要将页码从1到100顺序遍历即可,页码数是确定的。所以,直接输入要跳转的页码,即可跳转到页码对应的页面。
相对输入跳转页码而不直接点击“下一页”的理由是:一旦爬取过程中出现异常退出,比如到50页退出了,此时继续点击“下一页”,就无法快速切换到对应的后续页面。并且,在爬取过程中,同时需要记录当前的页码数,一旦点击“下一页”之后页面加载失败,就需要做异常检测,通过检测才能判断当前加载页面的页码数。导致运行时间增加,能效降低,所以选取输入页码跳转的方式来爬取页面。
当成功加载出某一页商品列表时,利用Selenium获取页面源代码后,再选用正则进行解析。

4.使用selenium +Firefox 打开网站输入要搜索的关键字
#coding=utf-8
import re
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 selenium.common.exceptions import TimeoutExceptiondriver = webdriver.Firefox()
wait = WebDriverWait(driver, 10)
#直接输入的初始网址
star_url = 'http://www.dangdang.com/'
# 汉语 在输入狂中要查找的关键字
keys=('汉语').decode('utf-8')
def open_page():try:driver.get(star_url)input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#key_S')))submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".button")))input.send_keys(keys)submit.click()except TimeoutException:open_page()

首先构造一个Webdriver对象,使用Firefox浏览器,指定关键词“日语”,接着定义open_page()方法,用于自动打开网页。

使用WebDriverWait对象,可以在等待加载时,设置等待条件,同时设置最长等待时间。如设置为最长10″,在这个时间内成功匹配了等待条件,就说明页面元素成功加载,返回页面解析结果后继续向下执行。如果超过最大等待时间没有成功匹配等待条件,就直接抛出超时异常。
5.解析图书信息

然后,实现了用get_contents()方法来解析图书信息。用driver.page_source直接获取页面源代码后,用正则进行解析,如下:

def get_contents():try:html = driver.page_sourcepattern = re.compile(r'<li.*?data-original="(.*?)".*?alt="(.*?)".*?class="price_n">(.*?)</span>.*?class="level".*?_1_q">(.*?)</a>.*?</li>',re.S)items = re.findall(pattern,html)for item in items:img, name, price, num = itemprint img, name, price, numexcept TimeoutException:get_contents()
图中显示匹配了多个信息,针对各个信息进行一次遍历,用for循环将每个结果分别进行解析,每次循环把匹配信息赋值为item变量,每个item变量都是一个数组,把数组内的每个元素按顺序命名,即可获取单个商品的特定内容。
6.利用selenium 翻页,达到抓取每页图书信息的效果
def next_page(page):try:input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#t__cp')))submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#click_get_page")))input.clear()input.send_keys(page)submit.click()get_contents()except TimeoutException:next_page(page)

关于翻页操作,指定presence_of_element_located条件,然后传入#t__cp选择器,选择器对应的是被爬取网站页面的跳转页码输入框,首先获取页码输入框,赋值为input,然后获取“确定”按钮赋值submit。先清空输入框,此时调用clear()法即可。然后,调用send_keys()方法将页码填充到输入框中,点击submit.click()即可。再执行get_contents()方法,提取图书信息。

7.运行代码
def main():open_page()get_contents()for page in range(2,101):next_page(page)if __name__ == '__main__':main()
因第一页在get_content()里已经抓取了,所以range(2,101)代表从第二页依次抓取到100页。
记录 共勉!
抓取结果如下:

http://img3m0.ddimg.cn/67/26/25079440-1_b_3.jpg  日语教育与日本学研究——大学日语教育研究国际研讨会论文集(2016) ¥167.00 2730条评论
http://img3m5.ddimg.cn/67/24/25199725-1_b_3.jpg  大家的日语(第二版)初级1(初级1.学习辅导1共2册)(专供网店) ¥77.10 2条评论
http://img3m8.ddimg.cn/33/16/24163458-1_b_6.jpg  新编日语 第1册(重排本)(附一书一码) ¥37.30 2324条评论
http://img3m0.ddimg.cn/18/19/25183440-1_b_3.jpg  日本语 日语学习必备图书 ¥38.00 25条评论
http://img3m4.ddimg.cn/59/12/23715014-1_b_0.jpg  新东方 日语语法新思维(修订版) ¥30.00 2238条评论
http://img3m8.ddimg.cn/24/24/23509158-1_b_10.jpg  红宝书·10000日语单词随身带:新日本语能力考试N1-N5文字词汇高效速记 ¥31.10 10356条评论
http://img3m1.ddimg.cn/61/15/23700661-1_b_1.jpg  日语误用辞典 ¥55.70 297条评论
http://img3m4.ddimg.cn/70/17/20588704-1_b_3.jpg  日本语:大家的日语(1)(新版)(MP3版)(みんなの日本語)——日本出版社原版引进经典产品,全球畅销日语教材 ¥35.30 5224条评论
http://img3m4.ddimg.cn/56/35/23601854-1_b_0.jpg  “读报刊,听NHK提高日语听说读写能力”系列 ¥98.00 344条评论
http://img3m4.ddimg.cn/62/11/25087454-1_b_3.jpg  大家的日语(第二版)(初级)(1)(配MP3光盘1张) ¥44.60 5624条评论
http://img3m9.ddimg.cn/85/23/410259649-1_b_3.jpg  新编日语教程2(第三版)套装:教程(赠MP3光盘)+练习册(中日两国一线教学专家联合编写、适合中国学生使用的经典日语教 ¥42.00 31条评论
http://img3m8.ddimg.cn/84/22/410259648-1_b_3.jpg  新编日语教程1(第三版)套装:教程(赠MP3光盘)+练习册(中日两国一线教学专家联合编写、适合中国学生使用的经典日语教 ¥42.00 1135条评论
http://img3m6.ddimg.cn/26/34/24170876-1_b_6.jpg  旅游日语口语入门:日本旅游口语书 ¥35.70 397条评论
http://img3m8.ddimg.cn/10/11/20941678-1_b_3.jpg  日语笔译实务 2级 ¥32.60 1914条评论
http://img3m1.ddimg.cn/10/0/24198481-1_b_2.jpg  新编日语 第4册(重排本)(附一书一码) ¥37.30 849条评论
http://img3m5.ddimg.cn/47/16/22609865-1_b_1.jpg  日语口语课堂(商务篇)(全彩图文)(附光盘) ¥46.40 508条评论
http://img3m5.ddimg.cn/62/25/410259725-1_b_1.jpg  新版中日交流标准日本语初级中级高级(第二版)学习套装(含主教材、同步练习) ¥229.40 40条评论
http://img3m4.ddimg.cn/66/36/23529594-1_b_1.jpg  日语语感辞典 ¥65.70 251条评论
http://img3m7.ddimg.cn/96/15/21060267-1_b_2.jpg  日语惯用语.谚语详解 ¥45.60 831条评论
http://img3m7.ddimg.cn/6/27/23808417-1_b_1.jpg  综合日语.第一册(修订版) ¥47.80 628条评论
http://img3m1.ddimg.cn/49/17/20583931-1_b_2.jpg  别笑!我是日语学习书(日本、韩国及台湾地区疯狂再版70次 附赠130分钟超长日语专家朗读光盘及随身学习小册子) ¥20.90 24264条评论
http://img3m4.ddimg.cn/64/33/25225264-1_b_3.jpg  日语能力考试10000词高效速记 ¥49.70 3条评论
http://img3m8.ddimg.cn/4/34/23994238-1_b_4.jpg  标准日语手写体临摹字帖:每天写一点日文100册以上团购请致电:010-57993301 ¥17.70 5297条评论
http://img3m3.ddimg.cn/37/4/24162373-1_b_6.jpg  日语面面观 ¥52.00 25条评论
http://img3m8.ddimg.cn/94/25/23492398-1_b_6.jpg  旅游日语口语入门:大家的日本旅游口袋书 ¥26.70 4212条评论
http://img3m3.ddimg.cn/42/24/25192473-1_b_2.jpg  日语拟声拟态词研究 ¥55.80 1条评论
http://img3m0.ddimg.cn/52/35/23288020-1_b_1.jpg  日语汉字读音速查词典(13新)——日语汉字读音一查便知 ¥35.30 1537条评论
http://img3m3.ddimg.cn/61/10/25087453-1_b_3.jpg  大家的日语(第二版)(初级)(2)(配MP3光盘1张) ¥44.60 590条评论
http://img3m1.ddimg.cn/7/29/22497361-1_b_1.jpg  21世纪日语系列教材—综合日语第四册(修订版) ¥39.50 812条评论
http://img3m4.ddimg.cn/65/32/23909654-1_b_7.jpg  日语零起点自学入门:日语入门王+日语口语900句(套装2册) ¥45.30 69条评论
http://img3m5.ddimg.cn/73/22/22779775-1_b_3.jpg  新编日语教程1练习册(第三版) ¥21.10 3287条评论
http://img3m9.ddimg.cn/32/3/20833889-1_b_3.jpg  日本语:大家的日语(2)(新版)(MP3版)——日本出版社原版引进经典产品,全球畅销日语教材 ¥35.30 5957条评论
http://img3m4.ddimg.cn/84/8/23801664-1_b_1.jpg  新东方 日语词汇新思维:词源+联想记忆法 ¥30.00 1019条评论
http://img3m1.ddimg.cn/51/17/21110811-1_b_2.jpg  这样学日语最有效 ¥11.54 26531条评论
http://img3m9.ddimg.cn/35/36/25124849-1_b_2.jpg  日语商务会话商务邮件核心句型大全 ¥47.30 5条评论
http://img3m2.ddimg.cn/68/9/25180322-1_b_3.jpg  日语教育与日本学(第10辑) ¥82.70 0条评论
http://img3m1.ddimg.cn/87/8/25064511-1_b_2.jpg  零起点 标准日语手写体临摹字帖 入门必备 ¥20.50 178条评论
http://img3m1.ddimg.cn/68/19/23948861-1_b_5.jpg  日语实用会话大全集(核心单词、高频实用会话关联学习) ¥31.10 80条评论
http://img3m0.ddimg.cn/75/24/22636920-1_b_1.jpg  实战商务日语进阶话典(配光盘) ¥35.30 913条评论
http://img3m1.ddimg.cn/73/21/24248341-1_b_3.jpg  高等院校日语专业四级考试10年真题与详解(第二版.附赠MP3下载) ¥39.60 202条评论
http://img3m3.ddimg.cn/28/23/22782403-1_b_2.jpg  新编日语教程2练习册(第三版) ¥21.10 1644条评论
http://img3m9.ddimg.cn/96/1/23986509-1_b_8.jpg  日语商务邮件商务文书写作大全 ¥32.40 223条评论
http://img3m2.ddimg.cn/37/26/23527882-1_b_10.jpg  蓝宝书 1000日语句型随身带:新日本语能力考试N1-N5文法句型高效速记 ¥27.70 3628条评论
http://img3m7.ddimg.cn/10/11/24176107-1_b_3.jpg  新日语敬语脱口说(配一张MP3光盘) ¥29.70 162条评论
http://img3m3.ddimg.cn/77/3/25172213-1_b_3.jpg  新日语能力考试万词对策N1级3000 ¥36.80 11条评论
http://img3m5.ddimg.cn/21/20/25153545-1_b_3.jpg  汉日语言对比研究论丛(第8辑) ¥82.70 0条评论
http://img3m6.ddimg.cn/82/6/25113016-1_b_3.jpg  新东方 标准日语临摹字帖:基础入门篇 ¥15.70 144条评论
http://img3m7.ddimg.cn/26/16/22586777-1_b_1.jpg  新日语能力考试全真模拟试题N5解析版(附MP3) ¥32.80 1078条评论
http://img3m5.ddimg.cn/37/9/23977045-1_b_6.jpg  日语数量词大全 ¥44.60 100条评论
http://img3m8.ddimg.cn/85/29/24177568-1_b_2.jpg  日语50音图记忆卡片(附双面发音挂图1张) ¥11.30 599条评论

使用selenium爬取当当网图书相关推荐

  1. Scrapy爬取当当网图书销售前100

    scrapy爬取当当网图书畅销榜 一.采集任务 爬取当当网图书畅销榜信息,获取热销图书前500相关数据. 二.网页解析 1. 打开当当网,按照图书榜>图书畅销榜 进入当当网图书畅销榜[http: ...

  2. scrapy框架的简单使用——爬取当当网图书信息

    ** Scrapy爬取当当网图书信息实例 --以警察局办案为类比 ** 使用Scrapy进行信息爬取的过程看起来十分的复杂,但是他的操作方式与警局办案十分的相似,那么接下来我们就以故事的形式开始Scr ...

  3. 请用Python写一个爬虫程序,爬取当当网图书畅销榜数据

    好的,下面是一个简单的 Python 爬虫代码,可以爬取当当网图书畅销榜数据: import requests from bs4 import BeautifulSoupurl = "htt ...

  4. Python爬虫实战+Scrapy框架 爬取当当网图书信息

    1.环境准备 1.在python虚拟环境终端使用 pip install scrapy下载scrapy依赖库 2.使用scrapy startproject book创建scrapy心目工程 3.使用 ...

  5. Scrapy爬虫之爬取当当网图书畅销榜

      本次将会使用Scrapy来爬取当当网的图书畅销榜,其网页截图如下:   我们的爬虫将会把每本书的排名,书名,作者,出版社,价格以及评论数爬取出来,并保存为csv格式的文件.项目的具体创建就不再多讲 ...

  6. python 爬虫 爬取当当网图书信息

    初次系统的学习python,在学习完基本语法后,对爬虫进行学习,现在对当当网进行爬取,爬取了基本图书信息,包括图书名.作者等 import requests from time import slee ...

  7. 爬虫入门经典(二十四) | 爬取当当网图书信息并进行数据清洗

      大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语-不温不火,本意是希望自己性情温和.作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己 ...

  8. xpath爬取当当网

    xpath爬取当当网 import requests from lxml import etree #from itertools import chain #import json # 利用接口读取 ...

  9. java爬取当当网所有分类的图书信息(ISBN,作者,出版社,价格,所属分类等)

    java爬取当当网所有分类的图书信息(ISBN,作者,出版社,价格,所属分类等) 顺手写的,没有建立新项目,放我自己的项目的一个文件夹里了,有兴趣的朋友可以拉下来试试 https://gitee.co ...

最新文章

  1. 跨域的原因以及解决方案
  2. 详解pytorch中的常见的Tensor数据类型以及类型转换
  3. linux或Jetson nano上安装torchvision或安装pillow报错:The headers or library files could not be found for jpeg
  4. 蓝桥杯 算法训练 最大的算式
  5. Java多线程系列--“JUC线程池”06之 Callable和Future
  6. PCA对特征点描述子降维
  7. java中匿名类的注意细节
  8. 《电路分析导论(原书第12版)》一3.6 色环与标准电阻标称值
  9. 昆明钟英高中2021年高考成绩查询,昆明官渡钟英中学2021年排名
  10. 人一生之中遇到各种事件的概率
  11. 这是阿里人手机里,这一年最舍不得删的照片
  12. 如何在没有电脑的情#况下用安卓手机制作windows pe启动盘
  13. 二开要饭网免费开源源码
  14. 服务器IO-HPSocket
  15. VC操作Word书签模板
  16. 一些有关MATLAB使用的基础习题
  17. 数据清洗整理基本操作(R:dplyr、tidyr、lubridate)
  18. 设计模式-工厂模式的3中不同实现[JAVA]
  19. win10 提升来宾账户为管理员账户
  20. 海贼王---追了好久的动漫了闲来无事发几张图嘿嘿

热门文章

  1. 【Ajax】简单入门 - 不深究
  2. 大学生学计算机打字速度,小学生计算机打字速度研究报告
  3. Arduino读取HC-SR04超声波测距传感器数据附带滤波
  4. springboot出现 Access denied for user ‘‘@‘localhost‘ (using password: YES)
  5. 如何加入Dave 英语学习小组
  6. 只有我一个人对ChatGPT感到蕉绿吗?
  7. 车站广播系统采用计算机,高铁站广播系统
  8. 利用加速度求解位置的算法——三轴传感器
  9. 一种基于“spark lite”和“按键自动精灵”软件的不间断跑流量方法
  10. SAP 标准带料委外加工 投A产B业务场景及功能操作演示(1)