网页与网站之间的关系做网站的域名怎么申请
news/
2025/9/23 1:01:05/
文章来源:
网页与网站之间的关系,做网站的域名怎么申请,农业开发公司好名字,城乡建设网站证件查询系统引入 今日概要 图片懒加载seleniumphantomJs谷歌无头浏览器知识点回顾 验证码处理流程今日详情 动态数据加载处理 一.图片懒加载 什么是图片懒加载#xff1f; 案例分析#xff1a;抓取站长素材http://sc.chinaz.com/中的图片数据 #!/usr/bin/env python
# -*- coding:utf-8 … 引入 今日概要 图片懒加载seleniumphantomJs谷歌无头浏览器知识点回顾 验证码处理流程今日详情 动态数据加载处理 一.图片懒加载 什么是图片懒加载 案例分析抓取站长素材http://sc.chinaz.com/中的图片数据 #!/usr/bin/env python
# -*- coding:utf-8 -*-
import requests
from lxml import etree if __name__ __main__: url http://sc.chinaz.com/tupian/gudianmeinvtupian.html headers { User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36, } #获取页面文本数据 response requests.get(urlurl,headersheaders) response.encoding utf-8 page_text response.text #解析页面数据获取页面中的图片链接 #创建etree对象 tree etree.HTML(page_text) div_list tree.xpath(//div[idcontainer]/div) #解析获取图片地址和图片的名称 for div in div_list: image_url div.xpath(.//img/src) image_name div.xpath(.//img/alt) print(image_url) #打印图片链接 print(image_name)#打印图片名称 - 运行结果观察发现我们可以获取图片的名称但是链接获取的为空检查后发现xpath表达式也没有问题究其原因出在了哪里呢 图片懒加载概念 图片懒加载是一种网页优化技术。图片作为一种网络资源在被请求时也与普通静态资源一样将占用网络资源而一次性将整个页面的所有图片加载完将大大增加页面的首屏加载时间。为了解决这种问题通过前后端配合使图片仅在浏览器当前视窗内出现时才加载该图片达到减少首屏图片请求数的技术就被称为“图片懒加载”。 网站一般如何实现图片懒加载技术呢 在网页源码中在img标签中首先会使用一个“伪属性”通常使用src2original......去存放真正的图片链接而并非是直接存放在src属性中。当图片出现到页面的可视化区域中会动态将伪属性替换成src属性完成图片的加载。 站长素材案例后续分析通过细致观察页面的结构后发现网页中图片的链接是存储在了src2这个伪属性中 #!/usr/bin/env python
# -*- coding:utf-8 -*-
import requests
from lxml import etree if __name__ __main__: url http://sc.chinaz.com/tupian/gudianmeinvtupian.html headers { User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36, } #获取页面文本数据 response requests.get(urlurl,headersheaders) response.encoding utf-8 page_text response.text #解析页面数据获取页面中的图片链接 #创建etree对象 tree etree.HTML(page_text) div_list tree.xpath(//div[idcontainer]/div) #解析获取图片地址和图片的名称 for div in div_list: image_url div.xpath(.//img/src2) #src2伪属性 image_name div.xpath(.//img/alt) print(image_url) #打印图片链接 print(image_name)#打印图片名称 二.selenium 什么是selenium 是Python的一个第三方库对外提供的接口可以操作浏览器然后让浏览器完成自动化的操作。 环境搭建 安装selenumpip install selenium 获取某一款浏览器的驱动程序以谷歌浏览器为例 谷歌浏览器驱动下载地址http://chromedriver.storage.googleapis.com/index.html 下载的驱动程序必须和浏览器的版本统一大家可以根据http://blog.csdn.net/huilan_same/article/details/51896672中提供的版本映射表进行对应 效果展示 from selenium import webdriver
from time import sleep# 后面是你的浏览器驱动位置记得前面加r,r是防止字符转义的 driver webdriver.Chrome(r驱动程序路径) # 用get打开百度页面 driver.get(http://www.baidu.com) # 查找页面的“设置”选项并进行点击 driver.find_elements_by_link_text(设置)[0].click() sleep(2) # # 打开设置后找到“搜索设置”选项设置为每页显示50条 driver.find_elements_by_link_text(搜索设置)[0].click() sleep(2) # 选中每页显示50条 m driver.find_element_by_id(nr) sleep(2) m.find_element_by_xpath(//*[idnr]/option[3]).click() m.find_element_by_xpath(.//option[3]).click() sleep(2) # 点击保存设置 driver.find_elements_by_class_name(prefpanelgo)[0].click() sleep(2) # 处理弹出的警告页面 确定accept() 和 取消dismiss() driver.switch_to_alert().accept() sleep(2) # 找到百度的输入框并输入 美女 driver.find_element_by_id(kw).send_keys(美女) sleep(2) # 点击搜索按钮 driver.find_element_by_id(su).click() sleep(2) # 在打开的页面中找到“Selenium - 开源中国社区”并打开这个页面 driver.find_elements_by_link_text(美女_百度图片)[0].click() sleep(3) # 关闭浏览器 driver.quit() 代码介绍 #导包
from selenium import webdriver
#创建浏览器对象通过该对象可以操作浏览器
browser webdriver.Chrome(驱动路径)
#使用浏览器发起指定请求
browser.get(url)#使用下面的方法查找指定的元素进行操作即可find_element_by_id 根据id找节点find_elements_by_name 根据name找find_elements_by_xpath 根据xpath查找find_elements_by_tag_name 根据标签名找find_elements_by_class_name 根据class名字查找 三.phantomJs PhantomJS是一款无界面的浏览器其自动化操作流程和上述操作谷歌浏览器是一致的。由于是无界面的为了能够展示自动化操作流程PhantomJS为用户提供了一个截屏的功能使用save_screenshot函数实现。代码演示 from selenium import webdriver
import time# phantomjs路径
path rPhantomJS驱动路径
browser webdriver.PhantomJS(path)# 打开百度
url http://www.baidu.com/
browser.get(url)time.sleep(3)browser.save_screenshot(rphantomjs\baidu.png)# 查找input输入框
my_input browser.find_element_by_id(kw)
# 往框里面写文字
my_input.send_keys(美女)
time.sleep(3)
#截屏
browser.save_screenshot(rphantomjs\meinv.png)# 查找搜索按钮
button browser.find_elements_by_class_name(s_btn)[0]
button.click()time.sleep(3)browser.save_screenshot(rphantomjs\show.png)time.sleep(3)browser.quit() 重点seleniumphantomjs 就是爬虫终极解决方案:有些网站上的内容信息是通过动态加载js形成的所以使用普通爬虫程序无法回去动态加载的js内容。例如豆瓣电影中的电影信息是通过下拉操作动态加载更多的电影信息。 综合操作需求是尽可能多的爬取豆瓣网中的电影信息 from selenium import webdriver
from time import sleep
import timeif __name__ __main__:url https://movie.douban.com/typerank?type_name%E6%81%90%E6%80%96type20interval_id100:90action# 发起请求前可以让url表示的页面动态加载出更多的数据path rC:\Users\Administrator\Desktop\爬虫授课\day05\ziliao\phantomjs-2.1.1-windows\bin\phantomjs.exe# 创建无界面的浏览器对象bro webdriver.PhantomJS(path)# 发起url请求bro.get(url)time.sleep(3)# 截图bro.save_screenshot(1.png)# 执行js代码让滚动条向下偏移n个像素作用动态加载了更多的电影信息js window.scrollTo(0,document.body.scrollHeight)bro.execute_script(js) # 该函数可以执行一组字符串形式的js代码time.sleep(2)bro.execute_script(js) # 该函数可以执行一组字符串形式的js代码time.sleep(2)bro.save_screenshot(2.png) time.sleep(2) # 使用爬虫程序爬去当前url中的内容 html_source bro.page_source # 该属性可以获取当前浏览器的当前页的源码html with open(./source.html, w, encodingutf-8) as fp: fp.write(html_source) bro.quit() 四.谷歌无头浏览器 由于PhantomJs最近已经停止了更新和维护所以推荐大家可以使用谷歌的无头浏览器是一款无界面的谷歌浏览器。代码展示 from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time# 创建一个参数对象用来控制chrome以无界面模式打开
chrome_options Options()
chrome_options.add_argument(--headless)
chrome_options.add_argument(--disable-gpu)
# 驱动路径
path rC:\Users\ZBLi\Desktop\1801\day05\ziliao\chromedriver.exe# 创建浏览器对象
browser webdriver.Chrome(executable_pathpath, chrome_optionschrome_options)# 上网
url http://www.baidu.com/
browser.get(url)
time.sleep(3)browser.save_screenshot(baidu.png)browser.quit() 作业 爬取网易新闻国内板块下的新闻标题和新闻内容 转载于:https://www.cnblogs.com/presleyren/p/10579705.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910941.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!