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

莱芜二手房seo外包如何

莱芜二手房,seo外包如何,东营网站开发,现在做网站用什么工具目录 一,网页开发者工具的使用 二、通过python发送请求 (一)、get (二)、带参数的get (三)、post 后续:数据解析 一,网页开发者工具的使用 我们可以用 requests 库…

目录

一,网页开发者工具的使用

二、通过python发送请求

(一)、get

(二)、带参数的get

(三)、post

后续:数据解析


一,网页开发者工具的使用

        我们可以用 requests 库来从一个url或者说一个网址来爬取资源,这里以百度主页和windows初始浏览器Microsoft Edge为例,我们进入百度主页后按F12进入开发者模式,我们常用的功能是元素和网络,源代码除了反爬反加密外很少用。元素显示的是当前页面的实时代码,网络则是能看到打开工具后当前网页的所有请求。

        在弹出的开发者界面中选择网络,然后刷新一下页面,可以看到工具抓取了很多请求,我们选中第一个请求。其中,标头就是网络传输时,http协议规定的格式。

        常规里包含了目标url,请求方法,是我们着重需要看的地方。请求标头中要注意的有Cookie、Referer、User-Agent。Cookie主要用于管理登录状态、验证自动登录,在一些登录的地方需要使用,Referer指从哪个网址发起请求的,可能和反爬有关。User-Agent则是表示了请求是从什么设备(操作系统,浏览器信息)发出的,一些网站会验证设备信息反爬。

        响应就是服务器对这回请求发送的回信,往往就是我们需要的数据。预览是返回数据的可视化,一般如网页、图片或者代码就能显示预览。

        很多请求还具有负载,其实就是get请求时附带的参数或者post请求附带的数据。

二、通过python发送请求

        常见的请求方式有get和post,其中,get是向服务器请求资源,一般的访问资源都是get。post会向服务器提交数据,像是百度翻译的待翻译文本提交就是post。而向一个网页提出请求是用get还是post具体就看上面标头中的请求方法。

(一)、get

        现在我们就试试下载百度主页吧。

import requestsurl = "https://www.baidu.com"
headers = {# 用户代理,某些网站验证用户代理,微微改一下,如果提示要验证码之类的,使用它"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome""/118.0.0.0 Safari/537.36",
}
with requests.get(url=url,headers=headers) as resp:resp.encoding = "utf-8"  # 当页面乱码改这里print(resp)with open("baidu.html", mode="w", encoding="utf-8") as f:  # 下载源码f.write(resp.text)

        不加 headers也是可以的,但请求到的东西会有差异,某些网站甚至会无视请求或者要求验证码,因为python默认的headers如下,相当于告诉网站我是python。

with作用是执行完毕后自动执行resp.close()关闭链接

        下载文件结果如下,没有百度图片是因为图片在其他请求中获得。

 

(二)、带参数的get

 接下来我们试试下载这个网页:(为什么不用百度,因为百度搜出来第二条结果过不了审,而且搜狗参数少点,但原理一样)

通过开发者工具,我们发现,这个网页还是get请求,但是url特别长

不过不要被吓到了,打开负载页面,比对一下,你就会发现这些都相当于是附带的参数,只是格式和编码原因看起来有点乱。上面的 query=i%E9%81%93i 其实就是utf-8编码下的 query=i道i 。

对于这种情况,我们可以直接将url修改为这回请求的url(可以适当裁剪,只保留关键信息),或者采用下面的方法:

import requestsurl = "http://www.sogou.com/web"
headers = {# 用户代理,某些网站验证用户代理,微微改一下,如果提示要验证码之类的,使用它"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0",
}
params = {"query": "i道i"
}
with requests.get(url=url, headers=headers, params=params) as resp:resp.encoding = "utf-8"  # 当页面乱码改这里print(resp)print(resp.text)with open("sogou.html", mode="w", encoding="utf-8") as f:  # 下载源码f.write(resp.text)

下面是显示的结果,看起来像是只有内容,失去了格式,这是因为搜狗网页html源代码就是这样的,网页除了html源代码以外,还能通过诸如css js脚本 等来动态的显示格式,所以,我们有时候在页面能看见的东西,使用ctrl+u查看页面源代码时却看不见,因为这些东西是后面通过js发送的其他请求动态添加到页面的。

(三)、post

        许多需要向服务器提交数据的行为,比如上传文件,论坛发帖等都是要post请求来修改服务器数据。这里就拿百度翻译为例子。百度翻译网页打开时,发送的请求是get请求,但提交待翻译文本时用的时post请求(只用于练手,请勿商用,请勿过多访问)

         直接获取右面翻译结果有些太难了,不亚于泼猴去梅山,这里走条捷径,顺着需要翻译的字一划,能开启划译功能

从抓包工具中能看到多了两条请求,我们看transapi的负载和响应:

 

可以看出,这条就是我们需要的请求响应中["data"][0]["dst"],所以,我们通过以下python代码就可以获得百度翻译的结果:

import requestsurl = "https://fanyi.baidu.com/transapi"
headers = {# 用户代理,某些网站验证用户代理,微微改一下,如果提示要验证码之类的,使用它"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0",
}
params = {"query": "i道i","from": "zh","to": "en","source": "txt",
}
with requests.post(url=url, headers=headers, params=params) as resp:resp.encoding = "utf-8"print(resp)print(eval(resp.text)["data"][0]["dst"])

注意,这里post返回的resp.text是str,你可以使用eval或者resp.json()来转字典。这样我们就获取到结果了。

后续:数据解析

改天写数据解析的三种工具:正则、bs4、xpath,详情见二、数据解析

http://www.dt0577.cn/news/37477.html

相关文章:

  • 网站设计的设计方案太原seo排名优化公司
  • 网站运营做网页设计网站收录查询
  • 滨海新网站建设seo怎么发外链的
  • 深圳专业做网站排名多少钱微信营销平台
  • 长寿网站建设公司微商怎么引流被加精准粉
  • 做金融服务网站赚钱免费手游推广代理平台渠道
  • 嘿客免费网站建设如何快速搭建网站
  • 有没有做京东客好的网站推荐搜索引擎推广法
  • 云南做网站找谁成都最好的seo外包
  • 简述商务网站建设步骤seo中心
  • 漳州网站建设优化谷歌商店下载官网
  • c在线编程网站百度公司官网
  • 小程序和h5的区别和优势智能网站推广优化
  • java 网站开发需要多久seo优
  • 怎么用电脑给域名做网站百度提交入口网址是指在哪里
  • 网站设计模板图片网站seo哪家好
  • 做精神科网站价格济南seo优化外包
  • 做网管要维护网站关键词优化
  • 做扎染的网站360识图
  • 长沙毕业设计代做网站价格展示型网站有哪些
  • 制作公司网站 黑龙江网站改版seo建议
  • 如果一个网站的域名是软件培训班
  • 肥东网站建设竞价推广平台有哪些
  • wordpress应用的主题修改教程西安网站seo优化公司
  • 替代wordpress 搜索正规网络公司关键词排名优化
  • 做美团网站代码北京快速优化排名
  • 国内公司网站模板软文怎么写比较吸引人
  • 做家装的网站有哪些内容沈阳网站制作公司
  • weui.css做网站百度官方网站下载
  • title 网站建设全球十大搜索引擎入口