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

快速建站哪里好购物app哪个好

快速建站哪里好,购物app哪个好,世界杯竞猜,网站的风格主要包括什么是爬虫#xff1f; 网络爬虫#xff08;又被称为网页蜘蛛#xff0c;网络机器人#xff0c;在FOAF社区中间#xff0c;更经常的称为网页追逐者#xff09;#xff0c;是一种按照一定的规则#xff0c;自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还…什么是爬虫 网络爬虫又被称为网页蜘蛛网络机器人在FOAF社区中间更经常的称为网页追逐者是一种按照一定的规则自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 其实通俗的讲就是通过程序去获取web页面上自己想要的数据也就是自动抓取数据。 你可以爬去妹子的图片爬取自己想看看的视频。。等等你想要爬取的数据只要你能通过浏览器访问的数据都可以通过爬虫获取 爬虫的本质 模拟浏览器打开网页获取网页中我们想要的那部分数据 浏览器打开网页的过程 当你在浏览器中输入地址后经过DNS服务器找到服务器主机向服务器发送一个请求服务器经过解析后发送给用户浏览器结果包括html,js,css等文件内容浏览器解析出来最后呈现给用户在浏览器上看到的结果 所以用户看到的浏览器的结果就是由HTML代码构成的我们爬虫就是为了获取这些内容通过分析和过滤html代码从中获取我们想要资源文本图片视频..... 爬虫的基本流程 发起请求 通过HTTP库向目标站点发起请求也就是发送一个Request请求可以包含额外的header等信息等待服务器响应 获取响应内容 如果服务器能正常响应会得到一个ResponseResponse的内容便是所要获取的页面内容类型可能是HTML,Json字符串二进制数据图片或者视频等类型 解析内容 得到的内容可能是HTML,可以用正则表达式页面解析库进行解析可能是Json,可以直接转换为Json对象解析可能是二进制数据可以做保存或者进一步的处理 保存数据 保存形式多样可以存为文本也可以保存到数据库或者保存特定格式的文件 Request,Response 浏览器发送消息给网址所在的服务器这个过程就叫做HTPP Request 服务器收到浏览器发送的消息后能够根据浏览器发送消息的内容做相应的处理然后把消息回传给浏览器这个过程就是HTTP Response 浏览器收到服务器的Response信息后会对信息进行相应的处理然后展示 Request中包含什么 请求方式 主要有GET/POST两种类型常用另外还有HEAD/PUT/DELETE/OPTIONS GET和POST的区别就是请求的数据GET是在url中POST则是存放在头部 GET:向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据而不应当被用于产生“副作用”的操作中例如在Web Application中。其中一个原因是GET可能会被网络蜘蛛等随意访问 POST:向指定资源提交数据请求服务器进行处理例如提交表单或者上传文件。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源或二者皆有。 HEAD与GET方法一样都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于使用这个方法可以在不必传输全部内容的情况下就可以获取其中“关于该资源的信息”元信息或称元数据。 PUT向指定资源位置上传其最新内容。 OPTIONS这个方法可使服务器传回该资源所支持的所有HTTP请求方法。用*来代替资源名称向Web服务器发送OPTIONS请求可以测试服务器功能是否正常运作。 DELETE请求服务器删除Request-URI所标识的资源。 请求URL URL即统一资源定位符也就是我们说的网址统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL它包含的信息指出文件的位置以及浏览器应该怎么处理它。 URL的格式由三个部分组成 第一部分是协议(或称为服务方式)。 第二部分是存有该资源的主机IP地址(有时也包括端口号)。 第三部分是主机资源的具体地址如目录和文件名等。 爬虫爬取数据时必须要有一个目标的URL才可以获取数据因此它是爬虫获取数据的基本依据。 请求头 包含请求时的头部信息如User-Agent,Host,Cookies等信息下图是请求请求百度时所有的请求头部信息参数请求体 请求是携带的数据如提交表单数据时候的表单数据POST Response中包含了什么 所有HTTP响应的第一行都是状态行依次是当前HTTP版本号3位数字组成的状态代码以及描述状态的短语彼此由空格分隔。 响应状态 有多种响应状态如200代表成功301跳转404找不到页面502服务器错误 1xx消息——请求已被服务器接收继续处理 2xx成功——请求已成功被服务器接收、理解、并接受 3xx重定向——需要后续操作才能完成这一请求 4xx请求错误——请求含有词法错误或者无法被执行 5xx服务器错误——服务器在处理某个正确请求时发生错误 常见代码 200 OK 请求成功 400 Bad Request 客户端请求有语法错误不能被服务器所理解 401 Unauthorized 请求未经授权这个状态代码必须和WWW-Authenticate报头域一起使用 403 Forbidden 服务器收到请求但是拒绝提供服务 404 Not Found 请求资源不存在eg输入了错误的URL 500 Internal Server Error 服务器发生不可预期的错误 503 Server Unavailable 服务器当前不能处理客户端的请求一段时间后可能恢复正常 301 目标永久性转移 302 目标暂时性转移 响应头 如内容类型类型的长度服务器信息设置Cookie,如下图响应体 最主要的部分包含请求资源的内容如网页HTMl,图片二进制数据等 能爬取什么样的数据 网页文本如HTML文档Json格式化文本等 图片获取到的是二进制文件保存为图片格式 视频:同样是二进制文件 其他只要请求到的都可以获取 如何解析数据 直接处理 Json解析 正则表达式处理 BeautifulSoup解析处理 PyQuery解析处理 XPath解析处理 关于抓取的页面数据和浏览器里看到的不一样的问题 出现这种情况是因为很多网站中的数据都是通过jsajax动态加载的所以直接通过get请求获取的页面和浏览器显示的不同。 如何解决js渲染的问题 分析ajax Selenium/webdriver Splash PyV8,Ghost.py 怎样保存数据 文本纯文本Json,Xml等 关系型数据库如mysql,oracle,sql server等结构化数据库 非关系型数据库MongoDB,Redis等key-value形式存储 什么是Requests Requests是用python语言基于urllib编写的采用的是Apache2 Licensed开源协议的HTTP库 如果你看过上篇文章关于urllib库的使用你会发现其实urllib还是非常不方便的而Requests它会比urllib更加方便可以节约我们大量的工作。用了requests之后你基本都不愿意用urllib了一句话requests是python实现的最简单易用的HTTP库建议爬虫使用requests库。 默认安装好python之后是没有安装requests模块的需要单独通过pip安装 pip install requests requests功能详解 总体功能的一个演示 importrequests response requests.get(https://www.baidu.com)print(type(response))print(response.status_code)#状态码 print(type(response.text))print(response.text)#打印网页内容 print(response.cookies)print(response.content)print(response.content.decode(utf-8))#改变编码 我们可以看出response使用起来确实非常方便这里有个问题需要注意一下 很多情况下的网站如果直接response.text会出现乱码的问题所以这个使用response.content 这样返回的数据格式其实是二进制格式然后通过decode()转换为utf-8这样就解决了通过response.text直接返回显示乱码的问题. 请求发出后Requests 会基于 HTTP 头部对响应的编码作出有根据的推测。当你访问 response.text 之时Requests 会使用其推测的文本编码。你可以找出 Requests 使用了什么编码并且能够使用 response.encoding 属性来改变它.如 response requests.get(http://www.baidu.com) response.encodingutf-8 print(response.text) 不管是通过response.content.decode(utf-8)的方式还是通过response.encodingutf-8的方式都可以避免乱码的问题发生 各种请求方式 requests里提供个各种请求方式Requests库的get()方法实践爬取网页的通用代码框架运行 importrequests r requests.get(https://www.baidu.com) r.status_code#获取网站状态码 r.text#获取内容 r.encoding#获取编码 r.apparent_encoding#获取另一个编码 r.encodingutf-8#替换编码为UTF-8 会发现一个乱码一个正常是因为代码 importrequestsdefgetHTMLText(url):try: rrequests.get(url,timeout30) r.raise_for_status()#如果状态码不是200就引发HTTPError异常 r.encodingr.apparent_encoding #替换编码 return r.text #返回网页内容 except:return 产生异常啦 urlwww.baidu.com/ print(getHTMLText(url))HTTP协议及Requests库方法
http://www.zqtcl.cn/news/574094/

相关文章:

  • 做衣服类网站策划书高端建设网站企业
  • 珠海网站建设公司有哪些代替做网站推广
  • 泰安的网站建设公司旅游网站建设规划报告怎么写
  • 如何建设淘宝客网站什么是网络营销常用的网络营销方法有哪些
  • 大连华南网站建设深圳网站建设公司的外文名是
  • 做招投标网站云南昆明网站建设价格
  • 越秀区网站建设公司微网站菜单
  • vs2017网站开发广州网站建设易得
  • 长沙企业网站建设价格陕西省门户网站建设政策
  • 龙华营销型网站制作wordpress最近评论
  • 嘉兴微信网站做一个招聘信息的网站_用什么做网站的软件
  • 各种购物网站大全上海市建设工程检测网
  • 网站推广沈阳php网站开发接口开发
  • 莱芜 做网站 公司官网开发
  • tomcat做网站做自媒体查找素材的网站
  • 信阳建设企业网站公司软件开发平台公司
  • 营销型网站建设营销型设计家官网视频
  • 部门网站建设目的加猛挣钱免费做网站软件
  • 洛阳制作网站哪家好wordpress是英文
  • dw里面怎么做网站轮播图网站建设分为多少模块
  • 国外互动网站wordpress设置用户头像
  • 重庆手机网站推广定做net创建网站之后怎么做
  • 网站仿静态做it的兼职网站
  • 建站用wordpress好吗hui怎么做网站
  • 从用户旅程角度做网站分析做网站还是做淘宝
  • 妇科医院网站优化服务商品牌型网站设计推荐
  • 西安网站制作排名网站建设对企业的帮助
  • lamp网站开发 pdf纯html5 网站
  • 白云区同和网站建设购物网站怎么建立
  • 公司制作网站需要espcms易思企业网站管理系统