当前位置: 首页 > news >正文

网站建设和开发网站抓取诊断ip出错

网站建设和开发,网站抓取诊断ip出错,苏州现在能去吗,门户网站建设jz190本文结构#xff1a; 一、引言 二、代码分享 三、问题总结 引言 这两天因为一些需求#xff0c;研究了一下如何爬取京东商品数据。最开始还是常规地使用selenium库进行商品页的商品抓取#xff0c;后来因为想要获取优惠信息#xff0c;只能进入到商品详情页进行抓取#x… 本文结构 一、引言 二、代码分享 三、问题总结 引言 这两天因为一些需求研究了一下如何爬取京东商品数据。最开始还是常规地使用selenium库进行商品页的商品抓取后来因为想要获取优惠信息只能进入到商品详情页进行抓取想着用selenium库模拟浏览器行为进行页面抓取速度有点慢就改用了requests库直接发送请求然后问题就来了明明在页面看到了优惠满减字段抓取的结果却是空白的。 百度研究了一番总算找到了原因。最后因为商品抓取量不大所以还是乖乖的使用了selenium库进行爬虫。 代码分享 爬虫代码如下 # -*- coding: utf-8 -*-爬取京东商品排行榜商品信息 from selenium import webdriver from bs4 import BeautifulSoup import pandas as pd import re import time##京东排行榜地址https://top.jd.com/writerpd.ExcelWriter(rD:\python学习\京东排行榜商品.xlsx)##数据写入的文件##使用selenium模拟浏览器登陆 #需要下载安装chromedriver driver  webdriver.Chrome(rC:\chromedriver.exe) driver.set_page_load_timeout(60)#设置页面最大加载等待时间category  [手机,平板电脑]#需要爬取的品类 category_url  [https://top.jd.com/sale?cateId653,https://top.jd.com/sale?cateId2694]#爬取品类的网页for ci,c in enumerate(category_url,start0):driver.get(c)#发送请求time.sleep(3)#################################获取排行榜信息###############################333info_name [] #商品信息tag1  [] #标签一x天最低tag2  [] #标签二自营/包邮/促销/赠品tag3  [] #标签三好评率price  [] #商品价格link  [] #商品详情页bs  BeautifulSoup(driver.page_source,html.parser)sale_list  bs.findAll(li,class_re.compile(saleitem))for s in sale_list:info_name.append(s.find(p,class_  saleitem_info_name).get_text())t  s.find(li,class_  top_mod_tag_item top_mod_tag_dj)if t is not None:tag1.append(t.get_text())else:tag1.append()t  s.find(li,class_  re.compile(top_mod_tag_item top_mod_tag_[^(dj)]))if t is not None:tag2.append(t.get_text())else:tag2.append()t  s.find(li,class_  top_mod_tag_item,textre.compile(好评率.*))if t is not None:tag3.append(t.get_text())else:tag3.append()price.append(s.find(p,class_  saleitem_info_price).get_text())link.append(s.find(a,class_  saleitem_link).get(href))#################进入商品详情页获取商品的优惠券########################  coupon  []for i,l in enumerate(link, start1):driver.get(rhttps:  l)time.sleep(3)bs  BeautifulSoup(driver.page_source,html.parser)try:coupon.append(bs.find(div,class_summary).find(div,id  summary-quan).find(span,class_  text).get_text())except:coupon.append()print(抓取品类%s第%d个商品优惠券信息完成 %(category[ci],i))time.sleep(3)data  pd.DataFrame({商品信息:info_name,标签一x天最低:tag1,标签二自营/包邮/促销/赠品:tag2,标签三好评率:tag3,价格:price,商品详情页:link,优惠券:coupon})data.to_excel(writer,sheet_namecategory[ci],indexFalse)driver.close()    爬虫的步骤很简单。直接使用selenium库webdriver访问需要抓取的网址然后进行html标签定位使用Beautifulsoup库进行数据提取之后使用pandas写入excel文件保存。 抓取结果如下 问题总结 最开始的问题出在哪儿呢为什么如果直接使用requests库get请求结果抓取不到价格数据 简单代码尝试了一下 import requests from bs4 import BeautifulSoup response  requests.get(https://item.jd.com/27009615825.html) bs  BeautifulSoup(response.content,html.parser) print(bs.find(div,class_summary).find(div,id  summary-quan).find(span,class_  text))明明打开浏览器的开发者工具可以看到优惠信息就存放在class属性值为 ‘text’的span标签下但是抓取到的结果却为空。 输出结果如下 In[1]: print(bs.find(div,class_summary).find(div,id  summary-quan).find(span,class_  text))None 百度了解到的原因是京东网页中价格等信息并不是存放在静态网页中的我们使用requests获取到网页源码进行html解析只会获取到空值。京东会采取js动态加载数据。那些商品价格、优惠券信息等等并不是放在静态网页中的。每次加载页面js脚本都会对数据接口进行调用请求数据然后返回到页面上。所以对于动态页面的抓取一种办法就是借助工具找到js脚本请求的数据接口使用requests库直接访问该接口获取数据。如价格信息就放在: https://p.3.cn/prices/mgets?callbackjQuery6775278skuidsJ_(skuid) 其中链接最后括号里存放商品的sku id比如 https://p.3.cn/prices/mgets?callbackjQuery6775278skuidsJ_27009615825 商品的sku id可以在商品详情页的html抓取到。 关于京东的数据抓取网上能百度到有完整的项目有兴趣的可以了解一下 CSDN地址 https://blog.csdn.net/Kandy_Ye/article/details/70183110 Github代码 https://github.com/KandyYe/JDSpider 另外更加简单的一种办法就是使用selenium库进行数据采集了。selenium模拟浏览器行为等到页面加载完成后再获取完整的数据源码所以在处理数据的时候就不需要担心我们抓取不到啦。但是有点小缺陷就是selenium库比requests要慢。 据说还有一个两者的结合体——requestium或许可以有更好
http://www.zqtcl.cn/news/53455/

相关文章:

  • 兰州专业做网站的公司有哪些网站后台更新 前台看不到
  • 网站建站工具seo关键词
  • 做ppt的网站有哪些简述网站规划的主要任务
  • 网站开发主要框架 后端苏州品牌网站设计企业
  • 2017招远网站建设中文wordpress模版
  • 网站开发毕业设计任务书范文品牌推广岗位职责
  • 百度网站大全在网站做推广要钱吗
  • 口碑好的天津网站建设精智WORDPRESS企业主题
  • 佛山白坭网站建设网站维护一般多久
  • 互联网站建设维护有关岗位珠海电视台app下载
  • 高明区住房和城乡建设局网站wordpress一级域名
  • jq网站模板上海今天出什么大事件了
  • 中山市做网站专业的免费推广网站58
  • 手机网站qq咨询代码wordpress 绿色
  • 广州建设网站首页系统开发中强调系统的整体性
  • 乐清站在那儿国际网站怎么开通
  • 介休门户网站怎么做教育类型的网站
  • 去网站做dnf代练要押金吗梵克雅宝手链
  • 电子商务网站建设技巧顺德品牌网站
  • 厦门建公司网站wordpress博客投稿
  • 做啥网站广西桂林自驾游攻略
  • 重庆网站seo建设深圳网站制作就找兴田德润
  • 海外网站如何做用户实名认证百度指数的各项功能
  • 网站新手引导怎么做免费个人网站域名
  • 怎么可以找到做公益的网站网站建设沟通话术
  • 搜狐网站开发做网站的去那里接单
  • 如何做国外的电商网站网站添加cms
  • 西部数码网站管理助手 伪静态湖北高端网站建设价格
  • 公司建设网站的优势西安大雁塔附近酒店推荐
  • 网站推广软件工具学校怎么创建网站