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

基层建设期刊在哪个网站被收录旅游网站开发意义和价值

基层建设期刊在哪个网站被收录,旅游网站开发意义和价值,上海做网站内容检查的公司,东莞常平二手房价格python对网页进行爬虫 基于BeautifulSoup的爬虫—源码 基于BeautifulSoup的爬虫###?一、BeautifulSoup简介1.?Beautiful?Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱#xff0c;通过解析文档为用户提供… python对网页进行爬虫 基于BeautifulSoup的爬虫—源码 基于BeautifulSoup的爬虫###?一、BeautifulSoup简介1.?Beautiful?Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱通过解析文档为用户提供需要抓取的数据因为简单所以不需要多少代码就可以写出一个完整的应用程序。 2.?Beautiful?Soup自动将输入文档转换为Unicode编码输出文档转换为utf-8编码。你不需要考虑编码方式除非文档没有指定一个编码方式这时Beautiful 3.?Soup就不能自动识别编码方式了。然后你仅仅需要说明一下原始编码方式就可以了。 4.?Beautiful?Soup已成为和lxml、html6lib一样出色的python解释器为用户灵活地提供不同的解析策略或强劲的速度。 5.?BS基于DOM结构进行页面内容解析当开始解析时会将整个页面的DOM树保存于内存中进而实现查找。 解析器 1.?Python标准库?BeautifulSoup(markup,?html.parser)?-?Python的内置标准库执行速度适中文档容错能力强 2.?lxml?HTML解析器?BeautifulSoup(markup,?lxml)?-?速度快文档容错能力强需要安装C语言库 3.?lxml?XML解析器?BeautifulSoup(markup,?xml)?-?速度快唯一支持XML的解析器需要安装C语言库 4.?html5lib?BeautifulSoup(markup,?html5lib)?-?最好的容错性以浏览器的方式解析文档生成HTML5格式的文档速度慢不依赖外部扩展###?二、具体代码使用from?bs4?import?BeautifulSoup import?requestsresp??requests.get(https://www.cnblogs.com/leyinsec)#?初始化解析器 html??BeautifulSoup(resp.text,?lxml)#?查找页面元素,根据标签层次进行查找 #?print(html.head.title) #?print(html.head.title.string) #?print(html.div) #?print(html.div.div) #?查找页面元素的通用方法find_all,select#?查找页面所有超链接 def?html_href(): ????links??html.find_all(a) ????for?link?in?links: ????????try: ????????????print(link[href]) ????????except?KeyError: ????????????print(No?href?attribute?found?for?this?tag)#?查找页面图片 def?html_images(): ????images??html.find_all(img) ????for?image?in?images: ????????print(image[src]) #?根据id或calss等属性查找 keyword??html.find_all(idkeyword) print(keyword) print(keyword[placeholder])#?根据title查找 titles??html.find_all(class_title) for?title?in?titles: ????print(title) ????print(title.find(a))#?根据text查找 title??html.find(textleyinsec) print(title.parent)#?根据xpath的风格进行查找?//[classtitle?and/or?id1] titles??html.find_all(div,?{class:?title}) for?title?in?titles: ????print(title) ???? #?css选择器 titles??html.select(div.title) for?title?in?titles: ????print(title) ???? #?css选择器查找id keyword??html.select(#keyword) try: ????print(keyword[placeholder]) except?TypeError: ????print(No?keyword?attribute?found?for?this?tag)#?列表查找 lis??html.select(ul?li) print(lis) if?__name__??__main__: ????html_images()基于BeautifulSoup的爬虫—源码解析 这段代码是一个基于BeautifulSoup库的简单爬虫示例用于从指定的网页中提取超链接和图片链接。下面是对代码的详细分析 导入库 from?bs4?import?BeautifulSoup import?requests这两行代码导入了编写爬虫所需的两个库BeautifulSoup用于解析HTML文档requests用于发送HTTP请求。 发送HTTP请求 resp??requests.get(https://www.cnblogs.com/leyinsec)这行代码使用requests库向指定的URL发送GET请求并将响应存储在变量resp中。 解析HTML文档 html??BeautifulSoup(resp.text,?lxml)这行代码使用BeautifulSoup解析HTTP响应中的文本内容。这里使用了’lxml’作为解析器因为它通常比Python内置的解析器更快且具有更好的容错性。 定义查找页面元素的函数 查找所有超链接 def?html_href(): ????links??html.find_all(a) ????for?link?in?links: ????????try: ????????????print(link[href]) ????????except?KeyError: ????????????print(No?href?attribute?found?for?this?tag)这个函数查找HTML文档中所有的a标签并尝试打印出每个链接的href属性。如果某个a标签没有href属性则会捕获KeyError异常并打印一条消息。 查找所有图片 def?html_images(): ????images??html.find_all(img) ????for?image?in?images: ????????print(image[src])这个函数查找HTML文档中所有的img标签并打印出每个图片的src属性。 根据属性查找元素 keyword??html.find_all(idkeyword) print(keyword) print(keyword[placeholder])这段代码尝试查找具有特定id属性的元素并打印出该元素及其placeholder属性。但是这里有一个错误keyword是一个列表所以不能直接使用keyword[placeholder]。应该遍历列表并分别访问每个元素的属性。 根据类名查找元素 titles??html.find_all(class_title) for?title?in?titles: ????print(title) ????print(title.find(a))这段代码查找所有具有title类的元素并打印出这些元素及其内部包含的a标签。 根据文本查找元素 title??html.find(textleyinsec) print(title.parent)这段代码查找文本内容为leyinsec的元素并打印出该元素的父元素。 使用CSS选择器查找元素 titles??html.select(div.title) for?title?in?titles: ????print(title)这段代码使用CSS选择器语法查找所有具有title类的div元素并打印它们。 查找具有特定ID的元素 keyword??html.select(#keyword) try: ????print(keyword[placeholder]) except?TypeError: ????print(No?keyword?attribute?found?for?this?tag)这段代码试图查找具有特定ID的元素并打印其placeholder属性。但是这里同样有一个错误keyword是一个列表所以不能直接使用keyword[placeholder]。应该遍历列表并分别访问每个元素的属性。 列表查找 lis??html.select(ul?li) print(lis)这段代码查找所有在ul标签内的li元素并打印出这个列表。 主函数调用 if?__name__??__main__: ????html_images()这段代码确保当脚本作为主程序运行时调用html_images()函数来执行图片链接的查找和打印。 总结 这段代码展示了如何使用BeautifulSoup库来解析HTML文档并通过不同的方法查找和提取页面元素。需要注意的是代码中有一些错误需要修正特别是在处理查找结果为列表的情况时。此外代码中没有处理网络请求可能出现的异常例如连接错误或HTTP错误状态码。在实际应用中应该添加适当的异常处理来提高代码的健壮性。 基于正则表达式的爬虫—源码 基于正则表达式的爬虫以下是提取的文章内容###?一、爬虫简介1.?**搜索引擎**百度谷歌企业内部的知识库某些项目专项数据爬取专业的数据爬取。 2.?**互联网** ???-?公网不需要授权的情况就可以浏览的内容搜索引擎的重点 ???-?深网需要授权才能使用的内容 ???-?暗网非正式渠道无法使用常规手段访问 3.?**爬取互联网的公开信息**但是正常情况下也需要遵守一个规则robots协议[https://www.baidu.com/robots.txt](https://www.baidu.com/robots.txt)君子协议###?二、基本原理1.?**所有和网页均是HTML** ???-?HTML首先是一个大的字符串可以按照字符串处理的方式对响应进行解析处理。 ???-?其次HTML本身也是一门标记语言与XML是同宗同源所以可以使用DOM对其文本进行处理。 2.?**所有的爬虫核心基于超链接**进而实现网站和网页的跳转。给我一个网站爬遍全世界。 3.?**如果要实现一个整站爬取**首先要收集到站内所有网址并且将重复网址去重开始爬取内容并保存在本地数据库进行实现后续目标。 ###?三、正则表达式实现import?re import?timeimport?requestsdef?download_page(): ????resp??requests.get(https://www.cnblogs.com/leyinsec) ????#?解析网页所有超链接 ????links??re.findall(a?href(.?),?resp.text) ????for?link?in?links: ????????#?排除无用链接 ????????if?postid?in?link?or?archive?in?link: ????????????continue ????????elif?link.startswith(javascript): ????????????continue ????????#?将页面文件保存在本地 ????????resp??requests.get(link) ????????resp.encoding??utf-8 ????????filename??link.split(/)[-1]??time.strftime(_%Y%m%d_%H%M%S)??.html ????????with?open(fpage/leyinsec博客园/{filename},?w,?encodingutf-8)?as?file: ????????????file.write(resp.text)def?download_images(): ????resp??requests.get(https://www.cnblogs.com/leyinsec) ????images??re.findall(img?src(.?),?resp.text) ????for?image?in?images: ????????if?image.startswith(/): ????????????image??https://www.cnblogs.com/leyinsec??image ????#?下载图片 ????????resp??requests.get(image) ????????filename??time.strftime(_%Y%m%d_%H%M%S)??image.split(/)[-1] ????????with?open(page/leyinsec博客园/photos/??filename,?wb)?as?file: ????????????file.write(resp.content)if?__name__??__main__: ????download_page() ????download_images()基于正则表达式的爬虫—源码解析 这段代码是一个简单的基于正则表达式的爬虫用于从指定的网页中提取超链接和图片链接并将它们保存到本地文件系统中。下面是对代码的详细分析 导入库 import?re import?time import?requests这三行代码导入了编写爬虫所需的三个库re用于处理正则表达式time用于处理时间相关的功能requests用于发送HTTP请求。 下载网页内容的函数 def?download_page(): ????resp??requests.get(https://www.cnblogs.com/leyinsec) ????#?解析网页所有超链接 ????links??re.findall(a?href(.?),?resp.text) ????for?link?in?links: ????????#?排除无用链接 ????????if?postid?in?link?or?archive?in?link: ????????????continue ????????elif?link.startswith(javascript): ????????????continue ????????#?将页面文件保存在本地 ????????resp??requests.get(link) ????????resp.encoding??utf-8 ????????filename??link.split(/)[-1]??time.strftime(_%Y%m%d_%H%M%S)??.html ????????with?open(fpage/leyin?sec博客园/{filename},?w,?encodingutf-8)?as?file: ????????????file.write(resp.text)这个函数首先发送一个GET请求到指定的URL然后使用正则表达式查找所有的超链接。对于每个找到的链接它会检查链接是否包含特定的字符串如’postid’或’archive’或者是否以’javascript’开头如果是则跳过该链接。对于其他链接它会发送另一个GET请求以获取网页内容并将其保存到本地文件系统中文件名包含时间戳以确保唯一性。 下载图片的函数 def?download_images(): ????resp??requests.get(https://www.cnblogs.com/leyinsec) ????images??re.findall(img?src(.?),?resp.text) ????for?image?in?images: ????????if?image.startswith(/): ????????????image??https://www.cnblogs.com/leyinsec??image ????#?下载图片 ????????resp??requests.get(image) ????????filename??time.strftime(_%Y%m%d_%H%M%S)??image.split(/)[-1] ????????with?open(page/leyinsec博客园/photos/??filename,?wb)?for?file: ????????????file.write(resp.content)这个函数的工作方式与download_page函数类似但是它查找的是img标签中的src属性。对于每个找到的图片链接如果链接是相对路径以’/开头它会将其转换为绝对路径。然后它会发送GET请求以下载图片并将其保存到本地文件系统中文件名同样包含时间戳。 主函数调用 if?__name__??__main__: ????download_page() ????download_images()这段代码确保当脚本作为主程序运行时调用download_page()和download_images()函数来执行网页内容和图片的下载。 注意事项和潜在问题 硬编码的URL代码中硬编码了要爬取的网站URL这限制了脚本的通用性。 缺乏异常处理代码中没有处理网络请求可能出现的异常例如连接错误或HTTP错误状态码。 缺乏robots.txt检查代码没有检查目标网站的robots.txt文件这可能会违反网站的爬虫政策。 文件路径错误在download_page函数中文件路径字符串有一个小错误leyin?sec应该是leyinsec。 重复下载代码没有实现去重逻辑可能会下载重复的网页或图片。 编码问题代码假设所有网页和图片都可以使用UTF-8编码这可能不总是正确的。 性能问题对于大型网站这种简单的递归下载方法可能会导致大量的并发请求从而对目标服务器造成压力。 总结 这段代码展示了如何使用正则表达式和requests库来爬取网页内容和图片并将它们保存到本地。然而代码中存在一些问题和潜在的改进空间特别是在异常处理、遵守robots.txt规则、错误处理和性能方面。在实际应用中应该考虑这些问题并采取相应的措施来提高代码的健壮性和效率。
http://www.w-s-a.com/news/374064/

相关文章:

  • 免费网线seo外链怎么做
  • 宽带技术网网站wordpress widget hook
  • 山西省住房和城乡建设厅网站报名wordpress添加标签插件
  • 网站怎么自己做外贸网站案例
  • 做网站的优势公司网站怎么做站外链接
  • 海城网站制作建设精准营销的营销方式
  • 北京短视频拍摄公司重庆网站seo推广公司
  • 广州免费推广网站建设4399网页游戏大全
  • 网站的构架与组成建站公司兴田德润
  • php网站部署步骤邯郸哪有做网站的
  • 做设计什么设计比较好的网站南充市住房和城乡建设局考试网站
  • 郑州做系统集成的公司网站龙岩
  • 厦门SEO_厦门网站建设网络营销课程视频
  • vs 2015 网站开发开网店在线咨询
  • 前端如何优化网站性能大学学校类网站设计
  • 中国铁路建设投资公司网站熊学军中国it外包公司排名前50
  • 房产网站的建设广州推广排名
  • 湟源县网站建设wordpress删除未分类
  • 营销型网站开发推广厦门百度seo公司
  • 遵义网站开发培训上海中高风险地区名单最新
  • 禹州市门户网站建设做网站可以申请个体户么
  • 大良营销网站建设效果彩票网站搭建 做网站
  • 做网站的公司为什么人少了在中国如何推广外贸平台
  • 盘锦网站制作工业电商网站怎么配色
  • 白云企业网站建设seo排名点击软件
  • wordpress跨站脚本攻击漏洞国外注册的域名国内能用吗
  • 西部数码网站管理助手2工信部资质查询网站
  • 公司网站哪个建的好吉林网站制作
  • 视频网站怎么引流wordpress私人玩物
  • 我的家乡湛江网站设计新钥匙网站建设