#!/usr/bin/python

# -*- encoding:utf-8 -*-

‘‘‘思路:1.从易迅网爬取冰箱的数据,包括品牌,型号,价格,容积,能效等级,制冷方式,门款式,显示方式,定频/变频,除霜模式,操作方式2.存入MYSQL数据库

本次限定为:300L以上‘‘‘frombs4 importBeautifulSoup

importrequests

importMySQLdb

importdatetime

#编码importsys

reload(sys)

sys.setdefaultencoding(‘utf-8‘)

#连接数据库,并插入爬到的数据definsert_db(page_list):

try:

#注意链接时加上charset=‘utf8‘解决编码问题conn = MySQLdb.connect(user=‘root‘, passwd=‘112233aa‘,host=‘192.168.1.14‘,db=‘miranda.tang‘,charset=‘utf8‘)

cursor = conn.cursor()

#删除当日已插入数据,避免重复插入cursor.execute(‘DELETE FROM yixun_price_refrigerator

WHERE update_day=CURRENT_DATE()‘)

conn.commit()   #提交#用executemany一次性提交爬取数据,比直接用execute快sql=‘INSERT INTO yixun_price_refrigerator

values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)‘cursor.executemany(sql,

page_list)

conn.commit()   #提交cursor.close() #关闭cursorconn.close()   #关闭连接exceptException ase:

printe

conn.rollback()

#得到soupdefurlBS(url):

response=requests.get(url)

soup = BeautifulSoup(response.text,"lxml")

returnsoup

#得到一共有多少页defget_pagenumber(url):

soup=urlBS(url)

page=soup.select(‘.sort_page_num span‘)[0]

page_contents=page.contents[1]

pagenumber=int(page_contents.replace(‘/‘,‘‘))

returnpagenumber

#得到页面信息defget_info(product_url):

soup=urlBS(product_url)

# print soup

#get titletitle = unicode(soup.title.text.strip().strip(u‘【价格_报价_图片_行情】-易迅网‘).replace(u‘】‘,‘‘))\

.encode(‘utf-8‘).decode(‘utf-8‘)

#print title

#get_原价try:

soup_origin = soup.find("dl", { "class": "xbase_item xprice xprice_origin"})

price_origin = soup_origin.find("span", { "class": "mod_price xprice_val"}).\

contents[1].text.encode(‘utf-8‘).decode(‘utf-8‘)

# print u‘原价:‘ + price_originexcept:

price_origin=0

#pass

#get现价try:

soup_sale= soup.find(‘dl‘,{‘class‘:‘xbase_item xprice‘})

price_sale = soup_sale.find("span", { "class": "mod_price xprice_val"}).contents[1].encode(‘utf-8‘).decode(‘latin1‘)

#print u‘现价:‘+ price_saleexcept:

price_sale=0

#pass

#得到列名名称oup_info_name=soup.find_all(‘td‘,{‘class‘:‘name‘})

# for each in

oup_info_name:

#

print each.contents[0].encode(‘utf-8‘).decode(‘utf-8‘)name_list=[each.contents[0].encode(‘utf-8‘).decode(‘utf-8‘) foreach inoup_info_name]

#得到内容soup_info_desc=soup.find_all(‘td‘,{‘class‘:‘desc‘})

# for each in

soup_info_desc:

#prod_list=[soup_info_desc[0].contents[0].encode(‘utf-8‘).decode(‘latin1‘)]prod_list=[each.contents[0].encode("utf-8").decode("utf-8") foreach insoup_info_desc] #用列表生成式将原表格中的数据放入列表中pro_dic={}

pro_list=[today,product_url,title,price_origin,price_sale]

#因为列名爬取数据中不分数据是没有的,通过字典的方式,把没有的数据记录为空fori inrange(len(name_list)):

pro_dic[name_list[i]]=prod_list[i]

name=[‘品牌‘,‘型号‘,‘颜色‘,‘能效等级‘,‘冰箱容积‘,‘制冷方式‘,‘门款式‘,‘重量‘,‘尺寸‘,‘制冷类型‘,

‘显示方式‘,‘定频/变频‘,‘除霜模式‘,   ‘冷冻室温度区间‘,‘冷藏室温度区间‘,‘冰箱冷柜机型‘,‘操作方式‘]

foreach inname:

try:

each=each.encode("utf-8").decode("utf-8")

pro_list.append(pro_dic[each])

# print

pro_dic[each]except:

pro_list.append(‘‘)

# print ‘null‘

# print pro_list

# print len(pro_list)page_list.append(pro_list)

#得到商品页链接defget_product_href(url):

soup=urlBS(url)

product_list=soup.select(‘#itemList .mod_goods_img a‘)

# print

product_listfori inrange(len(product_list)):

pro=product_list[i]

pro_href=pro[‘href‘]

# return pro_href

#print pro_hrefget_info(pro_href)

if__name__==‘__main__‘:

beseurl=‘http://searchex.yixun.com/html?path=705882t705892&attr=42515e1o2o3o4o5o6o7‘max_number=get_pagenumber(beseurl)

page_list=[]

today=datetime.date.today()     #得到当前日期,插入更新日期fori inrange(1,max_number+1):

# for i in

range(1,2):newurl=beseurl+‘&page=‘+str(i)

#print newurlget_product_href(newurl)

insert_db(page_list)

print("It‘s all done")

#建表# drop table yixun_price_refrigerator;

# CREATE TABLE yixun_price_refrigerator(

# update_day date                 --更新日期# ,product_url    VARCHAR(300)    --商品链接# ,title VARCHAR(300)  --名称# ,price_origin VARCHAR(100)   --原价# ,price_sale VARCHAR(100) --现价# ,Brands VARCHAR(100)   --品牌# ,Goods_sn VARCHAR(100)   --型号# ,Colour VARCHAR(100)   --颜色# ,Energy_efficiency_rating VARCHAR(100)

--能效等级# ,Refrigerator_volume VARCHAR(100)

--冰箱容积# ,Refrigeration VARCHAR(100)   --制冷方式# ,Door_style VARCHAR(100)   --门款式# ,weight VARCHAR(100)   --重量# ,size VARCHAR(100)   --尺寸# ,Cooling_type VARCHAR(100)   --制冷类型# ,Display_method VARCHAR(100)   --显示方式# ,frequency VARCHAR(100)   --定频/变频# ,Defrost_mode VARCHAR(100)   --除霜模式# ,Freezer_temperature_range VARCHAR(100)

--冷冻室温度区间# ,Save_temperature_range VARCHAR(100)

--冷藏室温度区间# ,Fridge_freezer_models VARCHAR(100)

--冰箱冷柜机型# ,Operation_method VARCHAR(100)

--操作方式# );

python爬虫10万信息mysql_python爬虫:爬取易迅网价格信息,并写入Mysql数据库相关推荐

  1. 爬虫数据executemany插入_python爬虫:爬取易迅网价格信息,并写入Mysql数据库

    详细代码: ''' 结果:

  2. Scrapy爬取重庆安居客二手房并存入mysql数据库(下)

    上篇中我们获取了重庆的一二级区(Scrapy爬取重庆安居客二手房并存入mysql数据库(上)),这一篇我们根据二级区获取相应的二手房信息. 初始化数据库 创建二手房信息数据库表,house表存放二手房 ...

  3. scrapy爬取京东商品评论并保存至Mysql数据库中

    scrapy爬取京东商品评论并保存至Mysql数据库 一.总体概述 二.实践过程 2.1网页解析 2.2使用单线程爬取代码如下: 2.3使用scrapy爬取数据 2.4绘制词云图结果: 三.总结 一. ...

  4. python-爬虫,实现输入关键字,然后爬取关键字主页代码并存储到mysql数据库

    python-爬虫,实现输入关键字,然后爬取关键字主页代码并存储到mysql数据库 实现代码如下: 代码是可以实现的,有问题可以私聊我 import os import sys import base ...

  5. python爬虫——使用requests库和xpath爬取猎聘网职位详情

    文章目录 前言 一.页面分析 1.职位列表页面分析 2.职位详情页面URL获取 3.职位详情页面分析 至此,所有页面解析完毕,开始写代码. 二.代码编写 1.导入相应库 2.设置代理和随机请求头 3. ...

  6. [ Python ] 爬虫类库学习之 xpath,爬取彼岸图网的 小姐姐 图片

    安装:pip install lxml 实例化一个etree对象 from lxml import etree 1.将本地的html文档中的源码数据加载到etree对象中 etree.parse(fi ...

  7. Python爬虫框架 scrapy 入门经典project 爬取校花网资源、批量下载图片

    ####1.安装scrapy 建议:最好在新的虚拟环境里面安装scrapy 注意:博主是在 Ubuntu18.04 + Python3.6 环境下进行开发的,如果遇到安装scrapy不成功请自行百度/ ...

  8. python爬取酒店信息_python selenium爬取去哪儿网的酒店信息(详细步骤及代码实现)...

    准备工作 1.pip install selenium 2.配置浏览器驱动.配置其环境变量 Selenium3.x调用浏览器必须有一个webdriver驱动文件 Chrome驱动文件下载chromed ...

  9. Python爬虫攻略(2)Selenium+多线程爬取链家网二手房信息

    申明:本文对爬取的数据仅做学习使用,请勿使用爬取的数据做任何商业活动,侵删 前戏 安装Selenium: pip install selenium 如果下载速度较慢, 推荐使用国内源: pip ins ...

最新文章

  1. 用摩斯电码通关《黑暗之魂3》!up主自制奇葩手柄,连育碧都找上门合作
  2. 一片哗然!ICLR 2020被曝47%的审稿人没发过相关论文
  3. [译] 学习 JavaScript:9 个常见错误阻碍你进步
  4. 112. 雷达设备【贪心】
  5. 30条值得程序员借鉴的好习惯
  6. android 的各种文件类
  7. 在有的公司,高手遍地走,天才不如狗
  8. svn用oracle认证方法,连接远程oracle和SVN服务器客户端的使用
  9. Windows7下载、安装、配置ADB的步骤
  10. 数学与计算机学院女生节标语,北师最新最全女生节标语
  11. 通讯网关 api网关_伟大的api网关迁移
  12. 3GPP RAN第一次F2F会议,都干了些啥?
  13. java计算长方体面积和周长
  14. Ubantu18.04上配置cuda10.0和cudnn
  15. 栈的push、pop序列-判断序列是否是栈的pop顺序
  16. 【如何中医调理过敏性鼻炎】
  17. 【新年计划】过去的2021,2022年的期许
  18. 使用PDFLib生成PDF文档(C语言版)
  19. matlab xpc target的论坛,一个Matlab关于XPC Target的问题
  20. 网上购物系统分析与实现毕业设计

热门文章

  1. eval() python_如何使用 Python 编写 vim 插件
  2. redhat7.3 启动系统报,A start job is running for Apply Kernel Variables的处理
  3. 黄金分割圆怎么画matlab,黄金分割线画法图解(操作技巧)
  4. 基于JAVA+Servlet+JSP+MYSQL的问卷调查管理系统
  5. Unity3D-Rigidbody
  6. navicat链接mysql
  7. MVC中某个页面不需要引用母版页的正确写法
  8. MessageBox模态对话框[转]
  9. 题目1057:众数----------------------位置,位置-------------如何控制while的循环条件,先输入一个数,再在while里面输入其他的19个数...
  10. virtualbox 中ubantu虚拟机范文win7文件夹