【实例简介】python爬虫爬取当当网

【实例截图】

【核心代码】

'''

Function:

当当网图书爬虫

Author:

Charles

微信公众号:

Charles的皮卡丘

'''

import time

import pickle

import random

import requests

from bs4 import BeautifulSoup

headers = {

'Upgrade-Insecure-Requests': '1',

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36',

'Accept-Encoding': 'gzip, deflate',

'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',

'Cache-Control': 'no-cache',

'Connection': 'keep-alive',

'Host': 'search.dangdang.com'

}

'''解析, 提取需要的数据'''

def parseHtml(html):

data = {}

soup = BeautifulSoup(html, 'lxml')

conshoplist = soup.find_all('div', {'class': 'con shoplist'})[0]

for each in conshoplist.find_all('li'):

# 书名

bookname = each.find_all('a')[0].get('title').strip(' ')

# 书图

img_src = each.find_all('a')[0].img.get('data-original')

if img_src is None:

img_src = each.find_all('a')[0].img.get('src')

img_src = img_src.strip(' ')

# 价格

price = float(each.find_all('p', {'class': 'price'})[0].span.text[1:])

# 简介

detail = each.find_all('p', {'class': 'detail'})[0].text

# 评分

stars = float(each.find_all('p', {'class': 'search_star_line'})[0].span.span.get('style').split(': ')[-1].strip('%;')) / 20

# 评论数量

num_comments = float(each.find_all('p', {'class': 'search_star_line'})[0].a.text[:-3])

data[bookname] = [img_src, price, detail, stars, num_comments]

return data

'''主函数'''

def main(keyword):

url = 'http://search.dangdang.com/?key={}&act=input&page_index={}'

results = {}

num_page = 0

while True:

num_page = 1

print('[INFO]: Start to get the data of page%d...' % num_page)

page_url = url.format(keyword, num_page)

res = requests.get(page_url, headers=headers)

if '抱歉,没有找到与“%s”相关的商品,建议适当减少筛选条件' % keyword in res.text:

break

page_data = parseHtml(res.text)

results.update(page_data)

time.sleep(random.random() 0.5)

with open('%s_%d.pkl' % (keyword, num_page-1), 'wb') as f:

pickle.dump(results, f)

return results

if __name__ == '__main__':

main('python')

在当当买了python怎么下载源代码-python爬虫爬取当当网相关推荐

  1. python linux下载磁力链_Python爬取80s网电影名称及迅雷(磁力)链接

    更多教程请移步至:洛凉博客 大家可以登录下www.80s.tw网站,观察页面菜单. 最开始我是想把菜单下所有页面的都爬一遍.想想还是有点复杂. image.png 但是最开始通过匹配,这些菜单的链接都 ...

  2. Python进阶之Scrapy-redis分布式爬虫抓取当当图书

    Python进阶之Scrapy-redis分布式爬虫抓取当当图书 1. 准备工作 1.1 安装scrapy-redis 1.2 在windows安装redis程序 1.3 打开redis服务 2. 需 ...

  3. python爬虫爬取当当网的商品信息

    python爬虫爬取当当网的商品信息 一.环境搭建 二.简介 三.当当网网页分析 1.分析网页的url规律 2.解析网页html页面 书籍商品html页面解析 其他商品html页面解析 四.代码实现 ...

  4. python爬虫爬取知网

    python爬虫爬取知网 话不多说,直接上代码! import requests import re import time import xlrd from xlrd import open_wor ...

  5. [python爬虫]爬取天气网全国所有县市的天气数据

    [python爬虫]爬取天气网全国所有县市的天气数据 访问URL 解析数据 保存数据 所要用到的库 import requests from lxml import etree import xlwt ...

  6. 在当当买了python怎么下载源代码-Python爬取当当网最受欢迎的 500 本书

    想看好书?想知道哪些书比较多人推荐,最好的方式就是看数据,接下来用 Python 爬取当当网五星图书榜 TOP500 的书籍,或许能给我们参考参考! Python爬取目标 爬取当当网前500本受欢迎的 ...

  7. 在当当买了python怎么下载源代码-Python爬取当当、京东、亚马逊图书信息代码实例...

    注:1.本程序采用MSSQLserver数据库存储,请运行程序前手动修改程序开头处的数据库链接信息 2.需要bs4.requests.pymssql库支持 3.支持多线程 from bs4 impor ...

  8. Python 爬虫第三步 -- 多线程爬虫爬取当当网书籍信息

    XPath 的安装以及使用 1 . XPath 的介绍 刚学过正则表达式,用的正顺手,现在就把正则表达式替换掉,使用 XPath,有人表示这太坑爹了,早知道刚上来就学习 XPath 多省事 啊.其实我 ...

  9. python网络爬虫网易云音乐下载_python网络爬虫爬取网易云音乐

    #爬取网易云音乐 url="https://music.163.com/discover/toplist" #歌单连接地址 url2 = 'http://music.163.com ...

最新文章

  1. L2TPV3---以太网端口到端口手动配置
  2. python解析任意json
  3. Intel 酷睿i5 6300HQ与Intel 酷睿i7 6700HQ哪个好
  4. php给定一个起始数字,下标值0,递减的值,求出他所有递减值的开头数字和结尾数字。
  5. 洛谷 P2596 [ZJOI2006]书架 (splay)
  6. blazeds调用java_Flex使用Blazeds与Java交互及自定义对象转换详解(转)
  7. Codeforces Round #419 Div. 1
  8. Windows服务器配置fileZilla Server
  9. 第一届对象存储技术及应用大会:Esri中国周宁——万物互联时代,云存储技术的变革与展望...
  10. android 仿站小工具,仿站小工具
  11. nodejs取汉字的首字母大写
  12. Shifterator库 | 词移图分辨两文本用词风格差异
  13. 网盘翻车不断,我是如何低价自建一个自用网盘
  14. cz73 读取速度慢_CPU 访问硬盘速度很慢的原因找到了
  15. Java 如何将线程挂起呢?
  16. 求1-1/2+1/3-1/4+...+1/99-1/100
  17. 安卓AndroidManifast
  18. 按键精灵:函数之可选参数
  19. html 设置整体字体,HTML字体的设置
  20. WinForm 子窗体 调用 父窗体 方法

热门文章

  1. 利用被入侵的路由器迈入内网——抓包,利用路由器漏洞入侵,进行流量劫持...
  2. 使用Android Studio build tensorflow/examples/android——直接用android studio即可
  3. puppet开源的软件自动化配置和部署工具——本质就是CS,服务端统一管理配置...
  4. 倒排索引优化 - 跳表求交集 空间换时间 贪心
  5. LNMP平台搭建之一:nginx编译安装
  6. [HTML/CSS]colum-gap属性
  7. git merge合并时遇上refusing to merge unrelated histories的解决方案
  8. 我的头上碧空晴朗——数据库存datetime问题
  9. 51nod 1013【快速幂+逆元】
  10. 对数据库进行黑盒测试操作?