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

校园网站建设重要性上海哪家优化公司好

校园网站建设重要性,上海哪家优化公司好,iis建好的网站套用模板,turnkey-wordpress有s表示加密的访问方式 一、初识爬虫 什么是爬虫 网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。由于互联网数据的多样性和资源的有限性,根据用户需求定向抓取相关网页并分析已成为如今主流的爬取策略爬虫可以做什么 你可以…

 

 有s表示加密的访问方式

一、初识爬虫

什么是爬虫
网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。由于互联网数据的多样性和资源的有限性,根据用户需求定向抓取相关网页并分析已成为如今主流的爬取策略
爬虫可以做什么
你可以爬取图片,爬取自己想看的视频等等,只要你能通过浏览器访问的数据都可以通过爬虫获取。
爬虫的本质是什么
模拟浏览器打开网页,获取网页中我们想要的那部分数据.

二、爬虫的基本流程


 爬虫是通过链接去模拟浏览器去获得网页,之所以可以获取数据,是因为服务器可以通过我们给他发送的路径给我们响应;

服务器将数据发给网页,浏览器将数据解析为我们所看到的,所以爬虫爬的不仅仅是网页,还是网页的源代码,所以我们还要通过re正则等方法将所需要的数据提取出来。


响应头是我们发给服务器的

服务器发给我们的是“响应"里的数据;

 如果我们不给服务器发送头部,服务器是不会给我们响应的;

三、编程规范

这一行代码可以控制多个代码之间了执行顺序


def text1(a):print('hello', a)
text1(1)if __name__ == "__main__":text1(2)

 可以看到先执行了text(1),因为py文件它是从上开始执行的,但是有了if __name__ == "__main__"之后,就不用再写text()了,直接在if里写,可以更好的控制执行流程;它相当于整个程序的执行入口。


四、引入自定义的模块

引入模块简单来说就是把别人写好的代码中的某个函数拿过来应用在我们需要的地方


【举个栗子】

 其中text1相当于一个包,test1.py是其中的一个模块,在text2中的text2.py中我们引用了text1包中的text1.py模块中的add函数。

五、requests库

下面使用 Python 内置的 requests 模块,该模块主要用来发送 HTTP 请求,requests 模块比 urllib 模块更简洁。


使用 requests 发送 HTTP 请求需要先导入 requests 模块:

import requests

导入后就可以发送 HTTP 请求,使用 requests 提供的方法向指定 URL 发送 HTTP 请求,例如:

# 导入 requests 包
import requests# 发送请求
x = requests.get('https://www.runoob.com/')# 返回网页内容
print(x.text)

每次调用 requests 请求之后,会返回一个 response 对象,该对象包含了具体的响应信息,如状态码、响应头、响应内容等:

print(response.status_code)  # 获取响应状态码
print(response.headers)  # 获取响应头
print(response.content)  # 获取响应内容

更多响应信息如下:

属性或方法说明
apparent_encoding编码方式
close()关闭与服务器的连接
content返回响应的内容,以字节为单位
cookies返回一个 CookieJar 对象,包含了从服务器发回的 cookie
elapsed返回一个 timedelta 对象,包含了从发送请求到响应到达之间经过的时间量,可以用于测试响应速度。比如 r.elapsed.microseconds 表示响应到达需要多少微秒。
encoding解码 r.text 的编码方式
headers返回响应头,字典格式
history返回包含请求历史的响应对象列表(url)
is_permanent_redirect如果响应是永久重定向的 url,则返回 True,否则返回 False
is_redirect如果响应被重定向,则返回 True,否则返回 False
iter_content()迭代响应
iter_lines()迭代响应的行
json()返回结果的 JSON 对象 (结果需要以 JSON 格式编写的,否则会引发错误)
links返回响应的解析头链接
next返回重定向链中下一个请求的 PreparedRequest 对象
ok检查 "status_code" 的值,如果小于400,则返回 True,如果不小于 400,则返回 False
raise_for_status()如果发生错误,方法返回一个 HTTPError 对象
reason响应状态的描述,比如 "Not Found" 或 "OK"
request返回请求此响应的请求对象
status_code返回 http 的状态码,比如 404 和 200(200 是 OK,404 是 Not Found)
text返回响应的内容,unicode 类型数据
url返回响应的 URL

1)requests 方法

requests 方法如下表:

方法描述
delete(urlargs)发送 DELETE 请求到指定 url
get(urlparams, args)发送 GET 请求到指定 url
head(urlargs)发送 HEAD 请求到指定 url
patch(urldata, args)发送 PATCH 请求到指定 url
post(urldata, json, args)发送 POST 请求到指定 url
put(urldata, args)发送 PUT 请求到指定 url
request(methodurlargs)向指定的 url 发送指定的请求方法

 六、设置超时

如果服务器有排斥,不想给你回应,这时候你可能会处于一直等待状态,但你又不可能一直等待,这时候就要设置超时时间;

import requestsreponse = requests.get('https://b2.faloo.com/y_0_1.html',timeout=0.01)

七、超时处理

为了让代码更健壮需要对超时进行检测;

import requeststry:reponse = requests.get('https://b2.faloo.com/y_0_1.html',timeout=0.01)
except requests.exceptions.ConnectTimeout as a:print('time out!')# except是检测内容,只要遇到"requests.exceptions.ConnectTimeout"就输出"time out!"

八、获取状态码,获取响应头

import requestsresponse = requests.get('https://b2.faloo.com/y_0_1.html')
print(response.status_code)  # 获取状态码
print(response.headers)  # 获取响应头

九、如何解决爬取网页时无报错却没有内容的问题

有时候,我们爬取一个网页,发现没有报错,但是没有任何内容显示,可能是因为访问的网站有反爬虫机制,而解决方法就是通过模拟浏览器来访问。


我们直接爬取豆瓣电影网页,发现没有报错,但是没有任何内容显示;


想要解决这个问题,首先我们要通过下面的方法获得header中user-agent的内容。

 requests.get(url=, headers=)

其中最重要的参数是url,headers

import requestsurl = 'https://movie.douban.com/top250'
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 ""Safari/537.36 Edg/112.0.1722.48",
}  # 模拟浏览器的代理,这样豆瓣就以为我们是浏览器向它发送请求,就不会阻拦rep = requests.get(url=url, headers=headers)
print(rep.text)

可以看到页面显示成功:

十、爬虫实例

爬取的网页:飞卢小说网

链接:原创小说排行榜_免费小说下载排行榜_飞卢小说网 (faloo.com)

import re
import requests# 爬取网页
reponse = requests.get('https://b2.faloo.com/y_0_1.html')# 标题
div_text1 = re.findall(re.compile(r'<div class="TwoBox02_08">(.*?)</div>'), reponse.text)
title_list = []
for i in div_text1:title_list.append(re.findall(re.compile(r'<h1 class="fontSize17andHei" title="(.*?)">'), i)[0]) # 加下标是为了去掉括号[],因为使用?取消贪婪匹配后每一个符合条件的都是列表形式,使用下标可以将每一个小列表中的字符串取出来,方便之后的拼接
print(title_list)# 作者
div_text2 = re.findall(re.compile(r'<div class="TwoBox02_09">(.*?)</div>'), reponse.text)
author_list = []
for i in div_text2:author_list.append(re.findall(re.compile(r'<a href="//b2.faloo.com/.* title="(.*?)"'), i)[0])  
print(author_list)# 类型
div_text3 = re.findall(re.compile(r'<span class="fontSize14andHui">(.*?)</a>'), reponse.text)
model_list = []
for i in div_text3:model_list.append(re.findall(re.compile(r'<a href="//b2.faloo.com/l.*" title="(.*?)" target="_blank">'), i)[0])  # 加下标是为了去掉括号[],因为使用?取消贪婪匹配后每一个符合条件的都是列表形式,使用下标可以将每一个小列表中的字符串取出来
print(model_list)# 将爬取到的内容合并
multi_list = map(list, zip(title_list, author_list, model_list))
all_list = list(multi_list)
print(all_list)
with open('./novel.txt', 'w', encoding='utf-8') as fw:fw.write('书名                            作者          类型\n')for i in all_list:fw.write('      '.join(i) +'\n')

执行成功效果图:

 

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

相关文章:

  • 校园门户网站 建设dw软件怎么制作网页
  • 信誉好的网站开发网店如何引流与推广
  • 营销型网站建设是什么意思长沙互联网推广公司
  • 河北seo优化_网络建设营销_网站推广服务 - 河北邢台seo天津短视频seo
  • 深圳线运营是网站建设最好看免费观看高清视频了
  • 北京公司网站怎么制作中国进入全国紧急状态
  • 东莞专业做外贸网站的公司如何发布自己的html网站
  • 建设局特种作业网站seo研究协会
  • linux上上线wordpress广东的seo产品推广服务公司
  • 怎么做淘客手机网站高端网站建设案例
  • wex5做视频网站如何优化关键词搜索排名
  • 玉溪网络推广 网站建设世界网站排名查询
  • 短租网网站开发 项目背景小程序推广50个方法
  • 常州专业网站建设公司咨询b2b有哪些电商平台
  • 拖拽式wordpress建站南京seo代理
  • 哪些网站做彩票预测途径网店推广平台有哪些
  • B2C营销型网站策划产品推广文章
  • 高校档案室网站建设注册域名在哪里注册
  • 企业网站建设的软件外包公司好不好
  • 网站开发技术培训最佳磁力吧ciliba搜索引擎
  • 做网站经常用的术语完整的社群营销方案
  • 开发商是不是建设单位seo外链论坛
  • 公司网站怎么设计制作seovip培训
  • 网络营销平台都有哪些企业seo网站推广
  • 网页传奇发布网关键词优化公司费用多少
  • 厦门网站设计制作湖南专业seo优化
  • 企业做定制网站的好处网站如何才能被百度收录
  • 东莞网络seo教育
  • 网站的上一页怎么做的泰州seo推广公司
  • 做色情诱导网站下载百度安装到桌面