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

十堰的网站建设公众号开发流程

十堰的网站建设,公众号开发流程,常熟网站,公司网站彩页怎么做用Python获取网络数据 网络数据采集是 Python 语言非常擅长的领域#xff0c;上节课我们讲到#xff0c;实现网络数据采集的程序通常称之为网络爬虫或蜘蛛程序。即便是在大数据时代#xff0c;数据对于中小企业来说仍然是硬伤和短板#xff0c;有些数据需要通过开放或付费…用Python获取网络数据 网络数据采集是 Python 语言非常擅长的领域上节课我们讲到实现网络数据采集的程序通常称之为网络爬虫或蜘蛛程序。即便是在大数据时代数据对于中小企业来说仍然是硬伤和短板有些数据需要通过开放或付费的数据接口来获得其他的行业数据和竞对数据则必须要通过网络数据采集的方式来获得。不管使用哪种方式获取网络数据资源Python 语言都是非常好的选择因为 Python 的标准库和三方库都对网络数据采集提供了良好的支持。 requests库 要使用 Python 获取网络数据我们推荐大家使用名为requests 的三方库这个库我们在之前的课程中其实已经使用过了。按照官方网站的解释requests是基于 Python 标准库进行了封装简化了通过 HTTP 或 HTTPS 访问网络资源的操作。上课我们提到过HTTP 是一个请求响应式的协议当我们在浏览器中输入正确的 URL通常也称为网址并按下 Enter 键时我们就向网络上的 Web 服务器发送了一个 HTTP 请求服务器在收到请求后会给我们一个 HTTP 响应。在 Chrome 浏览器中的菜单中打开“开发者工具”切换到“Network”选项卡就能够查看 HTTP 请求和响应到底是什么样子的如下图所示。 通过requests库我们可以让 Python 程序向浏览器一样向 Web 服务器发起请求并接收服务器返回的响应从响应中我们就可以提取出想要的数据。浏览器呈现给我们的网页是用 HTML 编写的浏览器相当于是 HTML 的解释器环境我们看到的网页中的内容都包含在 HTML 的标签中。在获取到 HTML 代码后就可以从标签的属性或标签体中提取内容。下面例子演示了如何获取网页 HTML 代码我们通过requests库的get函数获取了搜狐首页的代码。 import requestsresp requests.get(https://www.sohu.com/) if resp.status_code 200:print(resp.text)说明上面代码中的变量resp是一个Response对象requests库封装的类型通过该对象的status_code属性可以获取响应状态码而该对象的text属性可以帮我们获取到页面的 HTML 代码。 由于Response对象的text是一个字符串所以我们可以利用之前讲过的正则表达式的知识从页面的 HTML 代码中提取新闻的标题和链接代码如下所示。 import reimport requestspattern re.compile(ra.*?href(.*?).*?title(.*?).*?) resp requests.get(https://www.sohu.com/) if resp.status_code 200:all_matches pattern.findall(resp.text)for href, title in all_matches:print(href)print(title)除了文本内容我们也可以使用requests库通过 URL 获取二进制资源。下面的例子演示了如何获取百度 Logo 并保存到名为baidu.png的本地文件中。可以在百度的首页上右键点击百度Logo并通过“复制图片地址”菜单项获取图片的 URL。 import requestsresp requests.get(https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png) with open(baidu.png, wb) as file:file.write(resp.content)说明Response对象的content属性可以获得服务器响应的二进制数据。 requests库非常好用而且功能上也比较强大和完整具体的内容我们在使用的过程中为大家一点点剖析。想解锁关于requests库更多的知识可以阅读它的官方文档。 编写爬虫代码 接下来我们以“豆瓣电影”为例为大家讲解如何编写爬虫代码。按照上面提供的方法我们先使用requests获取到网页的HTML代码然后将整个代码看成一个长字符串这样我们就可以使用正则表达式的捕获组从字符串提取我们需要的内容。下面的代码演示了如何从豆瓣电影获取排前250名的电影的名称。豆瓣电影Top250的页面结构和对应代码如下图所示可以看出每页共展示了25部电影如果要获取到 Top250 数据我们共需要访问10个页面对应的地址是https://movie.douban.com/top250?startxxx这里的xxx如果为0就是第一页如果xxx的值是100那么我们可以访问到第五页。为了代码简单易读我们只获取电影的标题和评分。 import random import re import timeimport requestsfor page in range(1, 11):resp requests.get(urlfhttps://movie.douban.com/top250?start{(page - 1) * 25},# 如果不设置HTTP请求头中的User-Agent豆瓣会检测出不是浏览器而阻止我们的请求。# 通过get函数的headers参数设置User-Agent的值具体的值可以在浏览器的开发者工具查看到。# 用爬虫访问大部分网站时将爬虫伪装成来自浏览器的请求都是非常重要的一步。headers{User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36})# 通过正则表达式获取class属性为title且标签体不以开头的span标签并用捕获组提取标签内容pattern1 re.compile(rspan classtitle([^]*?)/span)titles pattern1.findall(resp.text)# 通过正则表达式获取class属性为rating_num的span标签并用捕获组提取标签内容pattern2 re.compile(rspan classrating_num.*?(.*?)/span)ranks pattern2.findall(resp.text)# 使用zip压缩两个列表循环遍历所有的电影标题和评分for title, rank in zip(titles, ranks):print(title, rank)# 随机休眠1-5秒避免爬取页面过于频繁time.sleep(random.random() * 4 1)说明通过分析豆瓣网的robots协议我们发现豆瓣网并不拒绝百度爬虫获取它的数据因此我们也可以将爬虫伪装成百度的爬虫将get函数的headers参数修改为headers{User-Agent: BaiduSpider}。 使用 IP 代理 让爬虫程序隐匿自己的身份对编写爬虫程序来说是比较重要的很多网站对爬虫都比较反感的因为爬虫会耗费掉它们很多的网络带宽并制造很多无效的流量。要隐匿身份通常需要使用商业 IP 代理如蘑菇代理、芝麻代理、快代理等让被爬取的网站无法获取爬虫程序来源的真实 IP 地址也就无法简单的通过 IP 地址对爬虫程序进行封禁。 下面以蘑菇代理为例为大家讲解商业 IP 代理的使用方法。首先需要在该网站注册一个账号注册账号后就可以购买相应的套餐来获得商业 IP 代理。作为商业用途建议大家购买不限量套餐这样可以根据实际需要获取足够多的代理 IP 地址作为学习用途可以购买包时套餐或根据自己的需求来决定。蘑菇代理提供了两种接入代理的方式分别是 API 私密代理和 HTTP 隧道代理前者是通过请求蘑菇代理的 API 接口获取代理服务器地址后者是直接使用统一的入口蘑菇代理提供的域名进行接入。 下面我们以HTTP隧道代理为例为大家讲解接入 IP 代理的方式大家也可以直接参考蘑菇代理官网提供的代码来为爬虫设置代理。 import requestsAPP_KEY Wnp******************************XFx PROXY_HOST secondtransfer.moguproxy.com:9001for page in range(1, 11):resp requests.get(urlfhttps://movie.douban.com/top250?start{(page - 1) * 25},# 需要在HTTP请求头设置代理的身份认证方式headers{Proxy-Authorization: fBasic {APP_KEY},User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36,Accept-Language: zh-CN,zh;q0.8,en-US;q0.6,en;q0.4},# 设置代理服务器proxies{http: fhttp://{PROXY_HOST},https: fhttps://{PROXY_HOST}},verifyFalse)pattern1 re.compile(rspan classtitle([^]*?)/span)titles pattern1.findall(resp.text)pattern2 re.compile(rspan classrating_num.*?(.*?)/span)ranks pattern2.findall(resp.text)for title, rank in zip(titles, ranks):print(title, rank)说明上面的代码需要修改APP_KEY为自己创建的订单对应的Appkey值这个值可以在用户中心用户订单中查看到。蘑菇代理提供了免费的 API 代理和 HTTP 隧道代理试用但是试用的代理接通率不能保证建议大家还是直接购买一个在自己支付能力范围内的代理服务来体验。 简单的总结 Python 语言能做的事情真的很多就网络数据采集这一项而言Python 几乎是一枝独秀的大量的企业和个人都在使用 Python 从网络上获取自己需要的数据这可能也是你将来日常工作的一部分。另外用编写正则表达式的方式从网页中提取内容虽然可行但是写出一个能够满足需求的正则表达式本身也不是件容易的事情这一点对于新手来说尤为明显。在下一节课中我们将会为大家介绍另外两种从页面中提取数据的方法虽然从性能上来讲它们可能不如正则表达式但是却降低了编码的复杂性相信大家会喜欢上它们的。
http://wiki.neutronadmin.com/news/219323/

相关文章:

  • 网站做全局搜索销售平台有哪些
  • 北京中天人建设工程有限公司网站wordpress 修改搜索
  • 开源网站模板cmsseo是什么
  • 如何计算网站pvseozhun
  • 海络网站用阿里云服务器做盗版小说网站吗
  • 深圳华南城网站建设网站设计专业建站公司
  • 建设公司网站需要钱吗北京网站推广排名
  • 做网站需要购买地域名吗网业分离是什么
  • 网站的设计公司微信小程序 网站建设
  • 深圳专业网站设计公司哪家好商城形式的网站需要多少钱
  • 福建住房与城乡建设厅网站祥云户网站
  • 国外哪些网站可以注册域名山东建筑信息平台
  • 出售企业网站备案资料企业网站开发公司排行榜
  • 门户网站系统建设招标文件商城网站需要多少钱
  • 网站制作公司的流程酒店网页设计模板图片
  • 英文网站建设多少钱外链提交网站
  • 手机设计企业网站网页设计欣赏英文翻译
  • 企业网站建设的内容科技信息网站系统建设方案
  • 专业网站建设 公司企业需要缴纳哪些税
  • 阿里云云主机做网站上海市建设工程 安全质量网站
  • 龙岩网站建设馨烨简单网页素材
  • 如何做网站的内容oa 开发
  • 怀化住建部网站企业网上品牌推广
  • 网站开发设备费用计入什么科目郑州短视频代运营
  • 深圳做网站(推荐乐云践新)中企动力是什么公司
  • 网站怎么做充值提现功能网站对接qq群 虚拟主机
  • 响应式网站上海有多少家外贸人常用的网站
  • 荆州做网站的公司房地产网站建设公司
  • 网站编辑器无法显示卫浴洁具公司网站模板
  • 怎么建立一个网站?网站建设做网站