2026/5/21 14:10:54
网站建设
项目流程
seo引擎搜索网站关键词,门户型网站都有哪些,怎么早网站上放广告,网站布局设计自适应1.调试模式介绍
鼠标右键#xff0c;再出现的选项中找到检查进入调试模式#xff0c;或者按键盘上的F12键进入调试模式。
elements:点击这个功能后出现的是当前页面的html文件#xff0c;在你想实时修改的那个元素处双击#xff0c;可以暂时修改#xff0c;不过并没有同步…1.调试模式介绍鼠标右键再出现的选项中找到检查进入调试模式或者按键盘上的F12键进入调试模式。elements:点击这个功能后出现的是当前页面的html文件在你想实时修改的那个元素处双击可以暂时修改不过并没有同步到后台。console:控制台用来打印错误信息和你在后台写的console.log(“显示信息”)source:资源管理功能用于调试js文件这里要说明的一点是在右侧找不到你想调试的js文件时可以在后台写debugger进入到这个js文件后可以在右侧单击打断点想调哪里就哪里。network:网络监控功能用于查看相关的网络请求详情请看图片(顺序:从左到右从上到下)2.Cookie2.1 cookie的用处当客户端和服务器通过三次握手四次挥手建立起稳定连接之后这个时候它们之间进行数据交互还会携带一个cookie参数。这个参数包含着诸如账号密码以及一些偏好设置以便提供个性化的内容。比如登录状态。当然cookie也是有 有效期的超过有效期cookie将会清除作废所以在编写一个cookie爬虫代码的时候并不是一次编写永久运行。每隔一个时间段就需要更新cookie。2.2 cookie的应用什么时候使用cookie呢1.当模拟登陆不好编写时(结构复杂有加密)。2.只有cookie没有账号密码。3.网站根据cookie对用户进行推荐专门爬取某人的个人推荐时。在代码中利用cookie?1.将cookie写入headers中2.使用get方法中的cookie参数进行传递注意参数必须为字典类型。注意事项1.自定义headers中的cookie后面没有s(非cookies)2.get方法中的cookies参数cookies后面有s3.cookie一定是键值对存在的2.3 会话保持1.为什么要进行会话保持再requests.post请求中去登陆一个网站会携带用户名和密码等信息。得到的response响应中得到了cookie。但是这个时候如果我们成功登陆进去了网页想要打开网页的其他部分会发现访问失败了。因为每一个requests请求都是新打开了一个浏览器去进行访问的那我们不可能去做到每一次请求都要去登陆一下怎么办就需要用到保持会话的功能了我们可以只登陆一次然后保持这种状态去做其他的或者更多的请求。2. requests.session() 会话保持就是比如你使用session成功登陆了某个网站则在再次使用该session对象请求该网站的其他网页都会默认使用该session之前使用的cookie等参数。3.在什么时候进行使用1.需要爬虫保持登陆状态。2.爬虫需要携带一些特定的参数。比如购物网站的无登陆状态下的推荐主要是cookie。2.4 模拟登陆——使用requestsimportrequests urlhttps://user.17k.com/ck/author2/shelf?page1appKey2406394919headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36,cookie:GUIDb0736049-8430-4431-a595-72ab05edff97; sajssdk_2015_cross_new_user1; accessTokenavatarUrl%3Dhttps%253A%252F%252Fcdn.static.17k.com%252Fuser%252Favatar%252F19%252F99%252F48%252F101634899.jpg-88x88%253Fv%253D1694655893041%26id%3D101634899%26nickname%3D%25E4%25B9%25A6%25E5%258F%258Bm02wbCAJ9%26e%3D1710207893%26s%3D1b2483aa35875b52; c_channel0; c_cscweb; BAIDU_SSP_lcrhttps://www.baidu.com/link?url142bYTSftlRt0IgfOXUlt0lcDN2mTEvB0UJUhud8zMuwdeqid8e7f3fe4000046e80000000265026678; sensorsdata2015jssdkcross%7B%22distinct_id%22%3A%22101634899%22%2C%22%24device_id%22%3A%2218a9156b62f41f-0cf24e614e624-26031f51-921600-18a9156b630f19%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E8%87%AA%E7%84%B6%E6%90%9C%E7%B4%A2%E6%B5%81%E9%87%8F%22%2C%22%24latest_referrer%22%3A%22https%3A%2F%2Fwww.baidu.com%2Flink%22%2C%22%24latest_referrer_host%22%3A%22www.baidu.com%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC%22%7D%2C%22first_id%22%3A%22b0736049-8430-4431-a595-72ab05edff97%22%7D; Hm_lvt_9793f42b498361373512340937deb2a01694655494,1694656127; Hm_lpvt_9793f42b498361373512340937deb2a01694656144}responserequests.get(url,headersheaders)print(response.text)利用cookies模拟登陆——获取响应cookiesimportrequestsfromrequests.utilsimportdict_from_cookiejar#请求信息headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36}#登陆网址login_urlhttps://passport.17k.com/ck/user/login#书架网址books_urlhttps://user.17k.com/ck/author2/shelf?page1appKey2406394919form_data{loginName:17590967558,password:z310425}login_responserequests.post(login_url,headersheaders,dataform_data)print(login_response.status_code)print(login_response.cookies)#将cookies转换成字典格式cookiesdict_from_cookiejar(login_response.cookies)print(cookies)#获取书架信息books_responserequests.get(books_url,headersheaders,cookiescookies)print(books_response.text)2.5模拟登陆——使用sessionimportrequestsfromrequests.utilsimportdict_from_cookiejar#请求信息headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36,}#登陆网址login_urlhttps://passport.17k.com/ck/user/login#书架网址books_urlhttps://user.17k.com/ck/author2/shelf?page1appKey2406394919form_data{loginName:17590967558,password:z310425}#创建一个session会话sessionrequests.session()login_responsesession.post(login_url,headersheaders,dataform_data)print(login_response.status_code)print(login_response.cookies)#获取书架信息books_responsesession.get(books_url,headersheaders)print(books_response.text)3.代理禁止重定向等3.1 代理1.透明代理代理服务器将客户端的信息转发至目标访问对象并没有完全隐藏客户端真实的身份。即服务器知道客户端使用了代理IP并且知道客户端的真实IP地址。2.普通匿名代理代理服务器用自己的IP代替了客户端的真实IP但是告诉了目标访问对象这是代理访问。3.高匿代理代理服务器良好地伪装客户端不但用一个随机的IP代替了客户端的IP也隐藏了代理信息服务器不会察觉到客户端是通过代理现实访问的即用户仿佛就是直接使用代理服务器作为自己的客户端。所以使用高匿代理就可以隐藏自己的真实IP了。3.2 禁止重定向通过添加allow_redirectsFalse属性来禁止重定向。3.3 超时处理importrequests urlhttps://google.comheaders{User-Agent:Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36}try:# response requests.get(url, headersheaders, timeout3)responserequests.get(url,headersheaders,timeout(3,7))exceptrequests.exceptions.ConnectTimeoutase:print(链接超时,e)try:responserequests.get(url,headersheaders,timeOut(3,7))exceptrequests.exceptions.ConnectTimeoutase:print(连接超时e)3.4 retrying模块retrying是一个功能强大的Python模块用于在出现错误或特定条件未满足时自动重试一个函数。它可以灵活地配置重试的次数、间隔时间和重试条件使我们能够更好地处理各种异常情况。除了最大重试次数之外retrying模块还允许我们配置其他重试条件。以下是一些常用的重试条件和配置选项stop_max_attempt_number停止重试的最大次数。wait_fixed每次重试之间的固定等待时间。wait_random_min和wait_random_max每次重试之间的随机等待时间范围。wait_exponential_multiplier和wait_exponential_max指数退避算法中的参数用于计算每次重试之间的等待时间。fromretryingimportretryimporttime count0# retry # 出现异常一直尝试# retry(stop_max_attempt_number3) # 设置最大尝试次数# retry(stop_max_delay3000) # 设置最大尝时间 单位ms# retry(wait_fixed2000) # 设置失败重试间隔时间retry(wait_random_min1000,wait_random_max5000)# 设置失败重试随机时间defdemo():globalcount count1print(f第{count}次尝试)# time.sleep(0.5)print(time.time())raiseException(请求错误)demo()间retry(wait_random_min1000, wait_random_max5000) # 设置失败重试随机时间def demo():global countcount 1print(f第{count}次尝试)# time.sleep(0.5)print(time.time())raise Exception(“请求错误”)demo()