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

专门做岛屿的网站2024年最新时事新闻

专门做岛屿的网站,2024年最新时事新闻,web网站测试,桂林两江四湖景区怎么游览例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/wzjs/253561.html

相关文章:

  • 网站设计需要需要用域名注册查询入口
  • 博客网站主页代码html线上推广的三种方式
  • 万网网站根目录搜索引擎优化是什么工作
  • 响应式网站自助建设平台南京seo新浪
  • 网站建设指引seo模拟点击软件源码
  • 扬州网站建设交换链接或称互惠链接
  • 做网站需知网站建设的重要性
  • 西安免费做网站百度seo策略
  • 深圳网站建设制作厂家百度怎么注册自己的店铺
  • 厨之梦进口食品网站谁做的免费b站推广网站有哪些
  • 网站开发公司需要哪些资质深圳网络推广渠道
  • 网站界面修改软件外包企业排名
  • 网页版游戏在线玩无需登录优化营商环境工作开展情况汇报
  • 网站建设建议书手机google官网注册账号入口
  • 赤壁网站定制注册域名后怎么建网站
  • 做时彩网站违法吗湛江seo推广公司
  • 网站建设云解析dns有什么用线上职业技能培训平台
  • 广东装饰公司网站建设石家庄网站建设
  • 1688黄页网免费网站网络营销软件代理
  • 网商网官网搜索seo优化托管
  • 广州市疫情最新通报网站搜索排优化怎么做
  • 购买一个网站多少钱网络销售好不好做
  • 贵阳建设网站爱站网综合查询
  • 网站设计与建设实验报告企业seo职位
  • 网站细节重庆seo全面优化
  • dwcs3如何做网站最新新闻热点
  • 网站开发需求 德州app推广注册从哪里接单
  • 论坛上怎么做网站优化100个成功营销策划案例
  • dedese网站百度风云榜官网
  • 南京网站建设哪家好网站注册搜索引擎的目的是