在当当买了python怎么下载源代码-python爬虫爬取当当网
【实例简介】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爬虫爬取当当网相关推荐
- python linux下载磁力链_Python爬取80s网电影名称及迅雷(磁力)链接
更多教程请移步至:洛凉博客 大家可以登录下www.80s.tw网站,观察页面菜单. 最开始我是想把菜单下所有页面的都爬一遍.想想还是有点复杂. image.png 但是最开始通过匹配,这些菜单的链接都 ...
- Python进阶之Scrapy-redis分布式爬虫抓取当当图书
Python进阶之Scrapy-redis分布式爬虫抓取当当图书 1. 准备工作 1.1 安装scrapy-redis 1.2 在windows安装redis程序 1.3 打开redis服务 2. 需 ...
- python爬虫爬取当当网的商品信息
python爬虫爬取当当网的商品信息 一.环境搭建 二.简介 三.当当网网页分析 1.分析网页的url规律 2.解析网页html页面 书籍商品html页面解析 其他商品html页面解析 四.代码实现 ...
- python爬虫爬取知网
python爬虫爬取知网 话不多说,直接上代码! import requests import re import time import xlrd from xlrd import open_wor ...
- [python爬虫]爬取天气网全国所有县市的天气数据
[python爬虫]爬取天气网全国所有县市的天气数据 访问URL 解析数据 保存数据 所要用到的库 import requests from lxml import etree import xlwt ...
- 在当当买了python怎么下载源代码-Python爬取当当网最受欢迎的 500 本书
想看好书?想知道哪些书比较多人推荐,最好的方式就是看数据,接下来用 Python 爬取当当网五星图书榜 TOP500 的书籍,或许能给我们参考参考! Python爬取目标 爬取当当网前500本受欢迎的 ...
- 在当当买了python怎么下载源代码-Python爬取当当、京东、亚马逊图书信息代码实例...
注:1.本程序采用MSSQLserver数据库存储,请运行程序前手动修改程序开头处的数据库链接信息 2.需要bs4.requests.pymssql库支持 3.支持多线程 from bs4 impor ...
- Python 爬虫第三步 -- 多线程爬虫爬取当当网书籍信息
XPath 的安装以及使用 1 . XPath 的介绍 刚学过正则表达式,用的正顺手,现在就把正则表达式替换掉,使用 XPath,有人表示这太坑爹了,早知道刚上来就学习 XPath 多省事 啊.其实我 ...
- python网络爬虫网易云音乐下载_python网络爬虫爬取网易云音乐
#爬取网易云音乐 url="https://music.163.com/discover/toplist" #歌单连接地址 url2 = 'http://music.163.com ...
最新文章
- L2TPV3---以太网端口到端口手动配置
- python解析任意json
- Intel 酷睿i5 6300HQ与Intel 酷睿i7 6700HQ哪个好
- php给定一个起始数字,下标值0,递减的值,求出他所有递减值的开头数字和结尾数字。
- 洛谷 P2596 [ZJOI2006]书架 (splay)
- blazeds调用java_Flex使用Blazeds与Java交互及自定义对象转换详解(转)
- Codeforces Round #419 Div. 1
- Windows服务器配置fileZilla Server
- 第一届对象存储技术及应用大会:Esri中国周宁——万物互联时代,云存储技术的变革与展望...
- android 仿站小工具,仿站小工具
- nodejs取汉字的首字母大写
- Shifterator库 | 词移图分辨两文本用词风格差异
- 网盘翻车不断,我是如何低价自建一个自用网盘
- cz73 读取速度慢_CPU 访问硬盘速度很慢的原因找到了
- Java 如何将线程挂起呢?
- 求1-1/2+1/3-1/4+...+1/99-1/100
- 安卓AndroidManifast
- 按键精灵:函数之可选参数
- html 设置整体字体,HTML字体的设置
- WinForm 子窗体 调用 父窗体 方法
热门文章
- 利用被入侵的路由器迈入内网——抓包,利用路由器漏洞入侵,进行流量劫持...
- 使用Android Studio build tensorflow/examples/android——直接用android studio即可
- puppet开源的软件自动化配置和部署工具——本质就是CS,服务端统一管理配置...
- 倒排索引优化 - 跳表求交集 空间换时间 贪心
- LNMP平台搭建之一:nginx编译安装
- [HTML/CSS]colum-gap属性
- git merge合并时遇上refusing to merge unrelated histories的解决方案
- 我的头上碧空晴朗——数据库存datetime问题
- 51nod 1013【快速幂+逆元】
- 对数据库进行黑盒测试操作?