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

湖南营销类网站设计甘肃建设厅网站执业注册中心

湖南营销类网站设计,甘肃建设厅网站执业注册中心,最好的韩国服务器,wordpress+安装插件+ftp例1 例1:写一个爬取百度搜索页面的程序,以搜索一个喜欢的明星为例(如在搜索框中输入周杰伦) 正常搜索 页面 爬虫思路: 1.用一个query变量,在控制台输入的方式更加灵活的输入想爬取的明星的百度搜索页面 …

例1

例1:写一个爬取百度搜索页面的程序,以搜索一个喜欢的明星为例(如在搜索框中输入周杰伦)

正常搜索

页面

爬虫思路:

1.用一个query变量,在控制台输入的方式更加灵活的输入想爬取的明星的百度搜索页面

因为是get请求,所以把wd=周杰伦的‘周杰伦’替换成{},{}的作用是把一个变量放到一个字符串里面,再在url后面追加字符串的format方法.format(query)实现,其中wd的作用是作为查询参数

2.添加一个user-agent代理在请求头里面,伪装成一个更像正常浏览器搜索的动作,因为百度有反爬机制,如果未检测到一个请求的user-agent(请求的设备【浏览器&操作系统&设备型号】),就会阻止访问

3.将爬取到的信息保存到一个文件中zhou.html

代码实现:

import requests
query = input("你喜欢的一个明星")
url='https://www.baidu.com/baidu?ie=utf-8&wd={}'.format(query)#大括号将某个变量放到一个字符串里面
myHeaders ={#伪装一个UserAgent,伪装的更像浏览器
"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:137.0) Gecko/20100101 Firefox/137.0"
}
resp = requests.get(url,headers=myHeaders)#处理一个小小的反爬
with open("Zhou.html", mode="w",encoding="utf-8") as f:#写入模式f.write(resp.text)

结果 :

控制台输入周杰伦

创建了一个爬取的信息的文件zhou.html,用浏览器打开这个html前端页面

由下面的localhost地址知道这个页面是爬取到的,和正常访问的页面一样,爬取成功

例2

例2:百度翻译爬虫爬取

正常访问的页面:

1、右键->检查:进入抓包工具页面

2、输入dog,点击sug(链接),点击preview,查看响应的json数据

3.查看请求方式

观察到此次请求的方式为POST,利用POST请求发送的参数为Form Data,传参方式与GET有差别,GET的传输参数是直接拼接到了URL里面

下面的url为https://fanyi.baidu.com/sug

代码实现:

import requests
url = "https://fanyi.baidu.com/sug"
s = input("请输入你要翻译的英文单词")
myData = {"kw": s
}myHeaders = {#伪装浏览器,反反爬策略
"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:137.0) Gecko/20100101 Firefox/137.0"
}
#发送post请求(发送的数据必须放在字典中,通过data的参数进行传递
resp = requests.post(url, data=myData, headers=myHeaders)
#将服务器返回的内容直接处理成json格式的数据(在python中就是词典)
print(resp.json())

结果:

 例3

请求路径和请求方式

如下图,请求路径URL如下,问号?前面的是请求的统一路径,问号?后面的是GET请求具体的参数(直接拼接到原URL上面)

请求的参数如下图

知道了请求的路径、请求的方式(GET请求)以及请求的参数就可以编写爬虫程序代码

代码实现:

GET请求的url拼接(因为原url问号后面的GET请求参数过长,所以统一封装成json格式的参数)

import requests
#1--url
url = "https://movie.douban.com/j/chart/top_list"#2--统一封装GET请求的参数
myParam = {
"type": "25",
"interval_id": "100:90",
"action": "",
"start": "100",
"limit": "20"
}#拼接url和parameter
resp = requests.get(url=url, params=myParam)
#验证这个url是否和原始url一样
print(resp.request.url)

控制台输出 ,如下图所示,url完全相同,代表拼接正确

被反爬

如果运行成功,但是控制台没有出现任何的爬取内容,说明被反爬了,阻止了访问

排查原因进行反反爬(首先进行user-agent位置)

因为基本上被反爬的首要原因就是因为服务器对于user-agent进行了检查

user-agent

包括访问者使用的浏览器类型、浏览器语言、浏览器插件、OS版本、CPU类型、浏览器渲染引擎

反反爬步骤

1.复制自己的User-Agent,在抓包工具的network中的header请求头中可以查到,将自己的代理复制

新增一个请求头的内容如下:

myHeaders = {
"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:137.0) Gecko/20100101 Firefox/137.0"
}

添加到原来的请求中

resp = requests.get(url=url, params=myParam,headers=myHeaders)

再次运行,出现爬取内容,说明被反爬的原因就是因为该网站设置了对User-agent进行检查,此次反反爬成功

上面的内容太乱,所以输出改为json格式的,因为本来这些数据都是用json封装的

print(resp.json())

输出结果

完整代码:

import requests
#1--url
url = "https://movie.douban.com/j/chart/top_list"#2--统一封装GET请求的参数
myParam = {
"type": "25",
"interval_id": "100:90",
"action": "",
"start": "100",
"limit": "20"
}
myHeaders = {
"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:137.0) Gecko/20100101 Firefox/137.0"
}#拼接url和parameter
resp = requests.get(url=url, params=myParam,headers=myHeaders)
#验证这个url是否和原始url一样
print(resp.request.url)
#如果控制台没有任何内容但也没有报错说明被反爬了,要使用反反爬策略(挨个尝试是什么原因导致自己被反爬了(很大可能就是因为没有user-agent)
print(resp.json())
resp.close()#关闭掉请求(否则会一直保持这个url链接),请求会被堵死(出现请求次数过多的现象)

注意在爬取完数据一定要关上请求,否则就会一直保持这个链接,多次访问这同一个URL后可能会造成堵死

http://www.dtcms.com/a/436485.html

相关文章:

  • 怡清源在慧聪网网站建设情况专业开发app公司
  • 什么是网站功能需求网站建设顶部图片
  • 凡科建站代理企业手机网站源码下载
  • 合肥做机床的公司网站用金山文档编辑信息泄露隐私
  • 网站要怎么盈利上海营销网站
  • 谁给个网站啊急急急2021ppt模板免费模板下载
  • 常州网站设计食品网站建设 网站定制开发
  • 蚌埠网站建设专业的公司慢查询 wordpress
  • 网站优化外包自己做的网站发布到网上视频播放不了
  • 自己建设网站怎么被百度收入制作二维码
  • 网站做百度推广要多少钱个人备案网站做淘宝客可以
  • 建设银行深圳培训中心网站用html框架做网站
  • 石家庄做网站公司有哪些有创意的域名
  • 河北综合网站建设系列平面设计类网站有哪些
  • 深圳品牌做网站公司网站分别
  • c 做网站实例搜索网址网站建站
  • 苍南哪里有网站建设公司自动点击竞价广告软件
  • 自建站英文wordpress小工具九宫格
  • 老会计手把手教做帐官方网站深圳建设怎么样
  • 课程网站建设毕业设计安仁做网站
  • 腾讯云电商网站建设建筑行业的公司有哪些
  • 公司网站案例展示青岛房产网二手房最新信息
  • RabbitMQ 安装与配置
  • 免费网站建设平台中国室内设计师排名
  • 网站建设 电子政务免费招商加盟
  • 最新新闻谷歌seo怎么做
  • 专业网站运营托管专业的网站建设商家
  • 进制0-9
  • 哪个网站可以兼职做效果图深圳最新消息今天新增
  • 互联网创业项目网站搭建网站架构是什么意思