python爬取电商数据_吴裕雄--天生自然PYTHON爬虫:使用Selenium爬取大型电商网站数据...

news/2024/5/20 5:35:14/文章来源:https://blog.csdn.net/weixin_32572673/article/details/113984430

用python爬取动态网页时,普通的requests,urllib2无法实现。例如有些网站点击下一页时,会加载新的内容,但是网页的URL却没有改变(没有传入页码相关的参数),requests、urllib2无法抓取这些动态加载的内容,此时就需要使用Selenium了。

e1e9055b4b1c46b90807d9a5e58710a8.png

使用Selenium需要选择一个调用的浏览器并下载好对应的驱动,我使用的是Chrome浏览器。

将下载好的chromedrive.exe文件复制到系统路径:E:\python\Scripts下,如果安装python的时候打path勾的话这个目录就会配置到系统path里了,如果没有的话,请手动把这个路径添加到path路径下。

dd3f58a6dbec90914346d661bd4c7fb1.png

下载的浏览器驱动也要看清楚对应自己浏览器版本的,如果驱动与浏览器版本不对是会报错了。

516e7ea850d6d78140044cf9a261b96e.png

国内不能直接访问Chrome官网,可以在ChromeDriver仓库中下载:http://chromedriver.storage.googleapis.com/index.html

c39b76735b055c555dfd772151a852e7.png

69f7193b30d3346e93a54c5a84e189cf.png

我的浏览器需要下载的是倒数第三个,请读者根据自己的电脑和浏览器的版本实际情况下载;

放到上面的python那个安装文件夹后,我记得也是需要放到chrome浏览器安装目录下的

查找chrome安装路径

9d68a076bc57323ac07443e891e660d0.png

把下载的驱动放到这个路径下

96acb1cbc7b8fa4e0f504aee56343333.png

然后也把chrome浏览器的安装路径添加到path路径中。

8f77843a743b165d2ca7f0d8c05339a5.png

配置好之后,实现爬虫的代码如下:

importtimeimportrandomimportrequestsimporturllib.requestfrom selenium importwebdriverfrom selenium.webdriver.common.by importByfrom selenium.webdriver.support.ui importWebDriverWaitfrom selenium.webdriver.support importexpected_conditions as ECdefget_url(url):

time.sleep(3)return(requests.get(url))if __name__ == "__main__":

driver= webdriver.Chrome() #初始化一个浏览器对象

dep_cities = ["北京","上海","广州","深圳","天津","杭州","南京","济南","重庆","青岛","大连","宁波","厦门","成都","武汉","哈尔滨","沈阳","西安","长春","长沙","福州","郑州","石家庄","苏州","佛山","烟台","合肥","昆明","唐山","乌鲁木齐","兰州","呼和浩特","南通","潍坊","绍兴","邯郸","东营","嘉兴","泰州","江阴","金华","鞍山","襄阳","南阳","岳阳","漳州","淮安","湛江","柳州","绵阳"]for dep indep_cities:

strhtml= get_url('https://m.dujia.qunar.com/golfz/sight/arriveRecommend?dep=' + urllib.request.quote(dep) + '&exclude=&extensionImg=255,175')

arrive_dict=strhtml.json()for arr_item in arrive_dict['data']:for arr_item_1 in arr_item['subModules']:for query in arr_item_1['items']:

driver.get("https://fh.dujia.qunar.com/?tf=package")#等待出发地输入框加载完毕,最多等待10s

WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "depCity")))#清空出发地文本框,输入出发地和目的地,点击“开始定制”按钮

driver.find_element_by_xpath("//*[@id='depCity']").clear()

driver.find_element_by_xpath("//*[@id='depCity']").send_keys(dep)

driver.find_element_by_xpath("//*[@id='arrCity']").send_keys(query["query"])

driver.find_element_by_xpath("/html/body/div[2]/div[1]/div[2]/div[3]/div/div[2]/div/a").click()print("dep:%s arr:%s" % (dep, query["query"]))for i in range(10):

time.sleep(random.uniform(5, 6))#如果定位不到页码按钮,说明搜索结果为空

pageBtns = driver.find_elements_by_xpath("html/body/div[2]/div[2]/div[8]")if pageBtns ==[]:break

#找出所有的路线信息DOM元素

routes = driver.find_elements_by_xpath("html/body/div[2]/div[2]/div[7]/div[2]/div")for route inroutes:

result={'date': time.strftime('%Y-%m-%d', time.localtime(time.time())),'dep': dep,'arrive': query['query'],'result': route.text

}print(result)if i < 9:#找到“下一页"按钮并点击翻页

btns = driver.find_elements_by_xpath("html/body/div[2]/div[2]/div[8]/div/div/a")for a inbtns:if a.text == u"下一页":

a.click()breakdriver.close()

1b131e54555073f8b1c27dda491ccb55.png

可能是网络慢运行的时间有点长才有输出。爬虫的话建议网速带宽要大些这样就会避免一些很乱的错误了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_793641.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多平台的网站实现单点登录系统(SSO)的开发思路 让你的会员中心更加统一(参考资料)...

单点登录并不是一个新鲜的玩意儿&#xff0c;比较官方的解释是企业业务整合的解决方案之一&#xff0c;通俗来讲SSO就是一个通用的用户中心&#xff0c;国内比较流行的UCenter就是一套单点登录解决方案。而近期以CSDN明文存储用户密码并泄露用户信息开始的各大网站争先恐后的泄…

报名系统网页导出html,教资报名系统提示网站兼容性怎么办 ie浏览器兼容性操作流程...

教师资格证报名2021年入口已经于1月14日开通&#xff0c;3月13日举行笔试&#xff0c;相信不少考生在报名过程中&#xff0c;遇到兼容性站点添加的问题&#xff0c;报名的浏览器不是IE系列&#xff0c;兼容性站点如何添加呢?为帮助各位考生报考&#xff0c;小编来帮助大家解决…

国外服务器 百度云,百度云加速如何配置网站海外加速

一、纯静态网站加速所谓纯静态网站就是网页全部由HTML纯静态页生成的网页&#xff0c;没有会员注册登陆、在线支付等需要调用数据库的功能。这类网页想要加速很简单&#xff0c;只需要把网页全部缓存至百度云加速节点即可。操作方法如下&#xff1a;1.进入报表下拉的-特定页面规…

java和seo哪个好_seo和java哪个更好

一个seo行业站点&#xff0c;科学的内容制作应该与seo相关&#xff0c;且内容本身是有人搜索的。seo和java哪个更好是有人搜索的语句&#xff0c;且与seo是强相关的&#xff0c;对于站增网来讲&#xff0c;这样的内容再适合不过了。任何一门技术&#xff0c;如果精通&#xff0…

nginx 判断手机端跳转_前后端分离情况下如何做SEO优化?

大家好&#xff0c;我是吉礻羊&#xff01;前后端分离情况下如何做SEO优化&#xff1f;优化针对这个问题分2个点&#xff1a;1&#xff0c;前后端分离的架构&#xff0c;无法提供搜索引擎可收录的页面&#xff0c;需要搜索引擎蜘蛛拥有执行javascript能力才行&#xff0c;可现实…

网页设计 html鼠标悬停,20个酷炫的鼠标悬停效果的网站设计

原标题&#xff1a;20个酷炫的鼠标悬停效果的网站设计出处&#xff1a;设计之家链接&#xff1a;http://www.sj33.cn/digital/wysj/201706/47570.htmlPixels by Tomer Lernerhttp://tomerlerner.com/Haushttps://www.madeinhaus.com/Canvahttps://www.canva.com/Mainworkshttp:…

Centos 安装GIT 同步发布到网站

之前一直都是用SVN 换了新公司后内部用的是GIT 于是研究一番 发现GIT确实就SVN快很多 于是试着搭建一下 第一步 安装GIT 其实在centos上安装很简单 直接用yum明白 yum install git看下是否安装成功 git --version如果出现版本号证明安装成功 第二部 创建GIT仓库 并发布到网站目…

2016年3月国内网站流量统计5强:搜狗、凤凰网上榜

IDC评述网&#xff08;idcps.com&#xff09;03月28日报道&#xff1a;根据中国互联网协会-中国网站排名公布的最新数据显示&#xff0c;截至2016年3月24日&#xff0c;国内网站独立访问量排名前五的是&#xff1a;百度、腾讯网、360搜索、搜狗与凤凰网&#xff0c;如下图。如上…

一个莆田系医院网站提醒的浏览器插件

为什么80%的码农都做不了架构师&#xff1f;>>> 支持一下。源码如下&#xff1a; http://git.oschina.net/wzwahl36/PTHospital.chrome 另外&#xff0c;如果你知道更多莆田医院&#xff0c;可以在源码网站上帮助完善莆田医院信息 转载于:https://my.oschina.ne…

网站安装打包 新建网站[四][文件解压] 上

在新建网站之前&#xff0c;就是要把打包好的项目拷贝一份到IIS指定的路径上&#xff0c;同时&#xff0c;还要为个别目录设置相应的访问权限! 于是就产生了两件事&#xff1a; 1。拷贝-》[这里我是采用RAR打包&#xff0c;然后解压] 2。设置权限 如果是用拷贝方式&#xff0c;…

各种资源网站收集

1.Linux资源 Linux 2.backbonerequirejsbootstrap学习 backbonerequirejsbootstrap backbonerequire.js backbone 3.bootstrap样式 bootstrap 4.angularjs各版本下载AngularJS官网本身采用AngularJS库构建&#xff0c;页面中的AngularJS库通过Google的CDN&#xff08;内容分发网…

大型网站架构系列:负载均衡详解

面对大量用户访问、高并发请求&#xff0c;海量数据&#xff0c;可以使用高性能的服务器、大型数据库&#xff0c;存储设备&#xff0c;高性能Web服务器&#xff0c;采用高效率的编程语言比如(Go,Scala)等&#xff0c;当单机容量达到极限时&#xff0c;我们需要考虑业务拆分和分…

网站备案的注意事项

客户因网站备案问题困扰许久&#xff0c; 网站备案是否成功关乎到网站能否正常上线&#xff0c;所以各位亲们&#xff0c;在办理公司网站业务的时候&#xff0c;务必做到备案正规化&#xff0c;严格化&#xff0c;细致化。做到这个要注意以下一些方面&#xff1a;一、您的网站…

Equifax阿根廷网站竟使用“admin”为默认账号密码

在发生“史上最大规模之一”的数据泄露事件之后&#xff0c;你是否还相信“信贷监控公司”Equifax 能够确保个人数据的安全&#xff1f;据外媒报道&#xff0c;本次时间造成 1.43 亿人名、社保号、家庭住址、以及更多信息被入侵&#xff0c;且专家们仍在继续戳破该公司的安全漏…

【直播】DCloud CTO崔红保:如何玩转H5网站快速转换成App?

将H5网站转换成App&#xff0c;不是简单套个WebView壳完事&#xff0c;关键是达到原生版的功能和体验。wap2app是一款将H5网站转换成App的前端开发框架&#xff0c;底层基于HTML5PLUS引擎&#xff0c;可以调用几十万原生API&#xff0c;实现更强大的推送、支付、分享、定位等能…

网站每日PV/IP统计/总带宽/URL统计脚本分享(依据网站访问日志)

在平时的运维工作中&#xff0c;我们运维人员需要清楚自己网站每天的总访问量、总带宽、ip统计和url统计等。 虽然网站已经在服务商那里做了CDN加速&#xff0c;所以网站流量压力都在前方CDN层了 像每日PV&#xff0c;带宽&#xff0c;ip统计等数据也都可以在他们后台里查看到的…

如何将视频网站中的视频插入到博客中

如何将视频网站中的视频插入到博客中拿优酷网的视频&#xff08;http://v.youku.com/v_show/id_XMjA2NTA3NzY0.html&#xff09;为例&#xff0c;操作方法如下&#xff1a;1.找到该视频下方的分享按钮&#xff0c;如下&#xff0c;将flash格式代码复制下来&#xff1b;2.选择编…

我的第一个mvc网站发布.馒头日记网

最近跟着园子里的老鸟们学们了.net mvc3 为了温习一下学习的知识,闲来在家无事&#xff0c;用了二周每天夜晚的时间,做了一个项目,馒头日记网&#xff0c;感兴趣的朋友&#xff0c;可以来站参观, 先贴出一下项目的结构. 本想今天就把代码 共享给大家&#xff0c;结果忘记代U盘,…

开源小程序CMS网站, JeeWx-App-CMS 1.0 首版本发布

为什么80%的码农都做不了架构师&#xff1f;>>> JeeWx-App-CMS 是jeewx开发的小程序网站开源项目&#xff0c;基于小程序wepy语言&#xff0c;具备cms网站的基本功能&#xff0c;能够打造简单易用的小程序公司官网。项目结构简单&#xff0c;逻辑清晰&#xff0c;代…

HTTP 网站在 Chrome 浏览器的死期将近:统统被标记为不安全

2019独角兽企业重金招聘Python工程师标准>>> Chrome 68 稳定版更新将于7月23日上线&#xff0c;之后未运行 HTTPS 协议但具有有效 TLS 证书的网页将在 Chrome 地址栏中展示“不安全”的警告信息。该警告信息将应用于通过 Chrome 访问的面向互联网的网站和企业/私有内…