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. python代码用c语言封装_树莓派开发ADC芯片CS1237(C语言和python库开发)
  3. 后台报错 新导入的项目报错
  4. STM32 进阶教程 1 - micropython 移植
  5. 80后创业故事之:兄弟散伙,创业失败(转)
  6. it资产管理系统php,开源IT资产管理软件(GIPI)
  7. 将 React 作为 UI 运行时
  8. 为VB应用程序添加英汉翻译功能
  9. 【leetcode】sort list(python)
  10. What decide the USB OTG port as host or device
  11. Laravel框架介绍与简介
  12. 国内外的几大主流浏览器性能比较
  13. zigbee 4:协调器/路由器/终端 建立/加入 网络
  14. 微信隐藏功能系列:微信状态里如何加音乐?有2个小技巧
  15. dojo和ArcGIS
  16. rd630服务器系统,联想thinkserverRD630安装windowsserver2012
  17. html5微信分享图片不显示,微信分享ios 不显示图片和简介问题总结
  18. clickhouse连接Tableau
  19. 浙大PAT 1021. Deepest Root (25)
  20. pytorch实现 chatbot聊天机器人

热门文章

  1. 【计算机网络学习3】数据链路层
  2. vuejs项目纯js导出word、在线下载富文本内容或者网页另存为word文件
  3. oracle杀连接服务器,玩转Oracle服务器连接
  4. (马蹄集)直线切平面 线段 圆切平面
  5. 手机设备身份识别码之IMEI
  6. android 热更新之腾讯Bugly 及所遇问题的修改总结
  7. 喵帕斯之矩阵 SDUT
  8. JAVA SE8 OCA/OCP和PL/SQL OCA/OCP认证书籍推荐
  9. ios上编译c语言的app_CppCode –适用于IOS的免费C / C ++ IDE和编译器
  10. 重庆交通大学计算机专业分,重庆交通大学计算机类专业2017年在黑龙江理科高考录取最低分数线...