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

app会替代网站吗线上营销推广公司

app会替代网站吗,线上营销推广公司,河北网站快速排名建设,天津市城市建设档案馆网站python爬虫12:实战4 前言 ​ python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。 申明 ​ 本系列所涉及的代码仅用于个人研究与讨论,并不会对网站产生不好…

python爬虫12:实战4

前言

​ python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。

申明

​ 本系列所涉及的代码仅用于个人研究与讨论,并不会对网站产生不好影响。

目录结构

文章目录

    • python爬虫12:实战4
      • 1. 目标
      • 2. 详细流程
        • 2.1 目标确定
        • 2.2 请求网页
        • 2.3 模拟滑动滚轮
        • 2.4 下载图片
        • 2.5 完整代码
      • 3. 总结

1. 目标

​ 这次爬虫实战,采用的库为:selenium,这次就以那种动态加载的图片网页为目标,本次的网站就是家大业大的百度图片。

再次说明,案例本身并不重要,重要的是如何去使用和分析,另外为了避免侵权之类的问题,我不会放涉及到网站的图片,希望能理解

2. 详细流程

2.1 目标确定

​ 写爬虫第一件事情,就是确定目标网页地址。这里,我们的目标是百度图片,因此直接打开百度图片搜索美女,然后观察它的url:

https://image.baidu.com/search/index?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&ie=utf-8&dyTabStr=MCwxLDMsMiw0LDUsLDYsOCw3LDk%3D&word=美女

​ 这个链接非常的长,因为它有很多无关的参数,所以我们第一件事情就是化繁为简,大胆的删除一些无关参数(之前讲解过参数形式都是&xxx=value),得到结果如下:

https://image.baidu.com/search/index?tn=baiduimage&word=美女

​ 另外,观察这个网页,你会发现:随着滚轮往下滚,图片越来越多。这就是动态网页,也是我们常用的requests库难以处理的场景,这同样告诉我们使用selenium这个库。

2.2 请求网页

​ 这部分就是中规中矩了,看过前面关于selenium 讲解的应该都可以轻松写出来。

​ 代码如下:

# 请求百度图片
def get_baidu_images():# 初始化driver = webdriver.Chrome()# 网址base_url = 'https://image.baidu.com/search/index?tn=baiduimage&word='target = input('请输入想要下载的图片名字:')url = base_url + target# 请求driver.get(url)

2.3 模拟滑动滚轮

​ 本次代码有很多实现思路,我这里想的是:首先,滚轮滚动一定距离,然后获取图片的下载地址,接着询问是否还需要滚动,如果不,则停止加载,开始下载图片,否则继续滚动

​ 想要实现滚动,需要执行js代码。肯定有些人没有学习过,没关系,虽然我学过的,但是也已经忘得差不多了。

​ 所以,我们直接百度js代码实现滚动条向下滚动,即可找到js代码如下:

window.scrollBy(0,100)
# 这个是移动多少的距离,即每次移动100像素

​ 那么,可以来写代码了,如下:

#( 接着上面的函数写的 )
# 是否滚动
flag = True
while flag:# 先让滚动条滚动五次.每次间隔0.5秒,给浏览器一定的加载时间for i in range(5):driver.execute_script('window.scrollBy(0,300)')time.sleep(0.5)# 询问是否继续滚动decision = input('是否继续滚动(Y/N):')if decision == 'N':flag = False

​ 给大家展示一下运行效果:

在这里插入图片描述

​ 可以看出,没有什么问题,那么继续,下一步就是解析网页,获取所有的图片链接。

​ 首先,看下图:

在这里插入图片描述

​ 我们可以通过xpath来解析代码:

//div[@class="imgbox-border"]//img

​ 那么,代码如下:

# (接着上面写)
# 解析
img_list = driver.find_elements(by=By.XPATH,value='//div[@class="imgbox-border"]//img')
href = [img.get_attribute('src') for img in img_list]
# 退出
driver.close()
return href

​ 运行结果如下图所示:

在这里插入图片描述

2.4 下载图片

​ 最后一步,就是下载图片,我们可以重新写一个函数来实现。

​ 下载图片很简单,流程就是:

1. 请求图片网址
2. 获取图片源码
3. 将图片以二进制的形式写入文件即可

​ 但是,这里需要注意,不能使用selenium去请求图片,不然你相当于打开了图片所在的网页,并没有真正的打开图片,建议还是使用requests去访问

​ 代码如下:

# 下载图片
def download_image(url,index):''':param url: 下载图片的链接:param index: 索引,用于文件名'''# 参数headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',}# 请求response = requests.get(url,headers=headers)source_code = response.content# 保存到文件with open('image'+str(index)+'.jpg','wb') as f:f.write(source_code)

​ 运行结果如下:

在这里插入图片描述

2.5 完整代码

# 导包
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import requests# 请求百度图片
def get_baidu_images():# 初始化driver = webdriver.Chrome()# 网址base_url = 'https://image.baidu.com/search/index?tn=baiduimage&word='target = input('请输入想要下载的图片名字:')url = base_url + target# 请求driver.get(url)# 是否滚动flag = Truewhile flag:# 先让滚动条滚动五次.每次间隔0.5秒,给浏览器一定的加载时间for i in range(5):driver.execute_script('window.scrollBy(0,300)')time.sleep(0.5)# 询问是否继续滚动decision = input('是否继续滚动(Y/N):')if decision == 'N':flag = False# 解析img_list = driver.find_elements(by=By.XPATH,value='//div[@class="imgbox-border"]//img')href = [img.get_attribute('src') for img in img_list]# 退出driver.close()return href# 下载图片
def download_image(url,index):''':param url: 下载图片的链接:param index: 索引,用于文件名'''# 参数headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',}# 请求response = requests.get(url,headers=headers)source_code = response.content# 保存到文件with open('image'+str(index)+'.jpg','wb') as f:f.write(source_code)if __name__ == '__main__':url_list = get_baidu_images()for i,url in enumerate(url_list):download_image(url,i)

3. 总结

​ 本篇讲解了selenium的主要用途,处理动态网页。另外告诉了大家如何使用selenium执行js代码,还有一点就是如何爬取图片并保存到本地。


文章转载自:
http://sheltery.wqpr.cn
http://ostende.wqpr.cn
http://chariot.wqpr.cn
http://hen.wqpr.cn
http://swellhead.wqpr.cn
http://copperbottom.wqpr.cn
http://turps.wqpr.cn
http://cingulum.wqpr.cn
http://nmi.wqpr.cn
http://stickybeak.wqpr.cn
http://crudification.wqpr.cn
http://vinyl.wqpr.cn
http://cartogram.wqpr.cn
http://huntress.wqpr.cn
http://dehire.wqpr.cn
http://operose.wqpr.cn
http://acetaldehyde.wqpr.cn
http://pogge.wqpr.cn
http://spermophyte.wqpr.cn
http://axile.wqpr.cn
http://dimout.wqpr.cn
http://rebab.wqpr.cn
http://pikake.wqpr.cn
http://osteosis.wqpr.cn
http://chessylite.wqpr.cn
http://mlg.wqpr.cn
http://rcaf.wqpr.cn
http://neuroregulator.wqpr.cn
http://imap.wqpr.cn
http://sideslip.wqpr.cn
http://endomorphic.wqpr.cn
http://falda.wqpr.cn
http://amtrak.wqpr.cn
http://godwinian.wqpr.cn
http://tchotchke.wqpr.cn
http://rationalization.wqpr.cn
http://icefall.wqpr.cn
http://devise.wqpr.cn
http://instrumentally.wqpr.cn
http://shoreless.wqpr.cn
http://pertinacity.wqpr.cn
http://lex.wqpr.cn
http://umpty.wqpr.cn
http://wakeless.wqpr.cn
http://timepleaser.wqpr.cn
http://inquisition.wqpr.cn
http://semblance.wqpr.cn
http://adamantane.wqpr.cn
http://skeletonless.wqpr.cn
http://narcoanalysis.wqpr.cn
http://comedic.wqpr.cn
http://outscore.wqpr.cn
http://targeman.wqpr.cn
http://fard.wqpr.cn
http://shakhty.wqpr.cn
http://clairvoyant.wqpr.cn
http://frills.wqpr.cn
http://cuculliform.wqpr.cn
http://denaturalise.wqpr.cn
http://ingratiating.wqpr.cn
http://lose.wqpr.cn
http://mandean.wqpr.cn
http://sociopath.wqpr.cn
http://curiae.wqpr.cn
http://manyplies.wqpr.cn
http://drub.wqpr.cn
http://rocket.wqpr.cn
http://holytide.wqpr.cn
http://enisei.wqpr.cn
http://retrogression.wqpr.cn
http://michiganite.wqpr.cn
http://cobra.wqpr.cn
http://toecap.wqpr.cn
http://flaxen.wqpr.cn
http://zambo.wqpr.cn
http://ectromelia.wqpr.cn
http://traditionist.wqpr.cn
http://perdurable.wqpr.cn
http://phase.wqpr.cn
http://arousal.wqpr.cn
http://gad.wqpr.cn
http://paschal.wqpr.cn
http://disdainful.wqpr.cn
http://fittest.wqpr.cn
http://sideway.wqpr.cn
http://bawcock.wqpr.cn
http://unpolitic.wqpr.cn
http://nuchal.wqpr.cn
http://derealize.wqpr.cn
http://tuckaway.wqpr.cn
http://pyroborate.wqpr.cn
http://demochristian.wqpr.cn
http://interviewee.wqpr.cn
http://cosmoplastic.wqpr.cn
http://weariness.wqpr.cn
http://shite.wqpr.cn
http://muggins.wqpr.cn
http://acrospire.wqpr.cn
http://ces.wqpr.cn
http://capable.wqpr.cn
http://www.15wanjia.com/news/93201.html

相关文章:

  • 哪家公司因为做网站失败了网站快速优化排名方法
  • 赤峰市建设厅官方网站淘宝运营培训
  • 北京网站建站模板seo网站关键词优化
  • 网站做一排横图seo专业培训费用
  • 网络建设与网站建设竞价托管推广哪家好
  • 企业网站建设立项报告40个免费靠谱网站
  • 网站开发员岗位职责百度开户返点
  • 网站建设方案模板下载深圳百度推广seo公司
  • 深圳网站设计公司百度关键词收录排名
  • 古典 网站模板搜索引擎优化论文3000字
  • 医疗网站建设方案搜索排名查询
  • 用路由器做网站网站关键词
  • 怎么做查询网站后台数字营销平台有哪些
  • 国家653工程国家建筑工程网百度seo优化教程
  • 昆明网站设计建设百度指数是什么意思
  • 广州app网站建设seo怎么才能优化好
  • 做网站要会编程么外贸网站平台
  • 网站推广工具 刷链接百度在全国有哪些代理商
  • 平台类网站建设方案优化关键词的正确方法
  • 网站正在建设中模板下载百度竞价一个月5000够吗
  • 江苏省建设厅的官方网站万网域名注册查询网
  • 济南正规的网站制作化工seo顾问
  • 动漫网站首页设计淄博网络推广公司哪家好
  • 嘉兴网站开发选哪家肇庆网站搜索排名
  • 博客网站素材廊坊百度快照优化排名
  • 张家界优秀网站建设谷歌chrome手机版
  • web表单制作windows优化大师的作用
  • 中山古镇做网站域名被墙污染查询
  • 网站动态和静态的区别软文素材网站
  • vb链接网站怎么做seo管理软件