网页视频抓取(Request或在网页地址后面提供参数的方法提交数据(组图))
优采云 发布时间: 2022-01-15 14:17网页视频抓取(Request或在网页地址后面提供参数的方法提交数据(组图))
Request对象的作用是与客户端交互,采集客户端的Form、Cookies、超链接,或者采集服务器端的环境变量。
Request 对象是客户端对服务器的请求,包括用户提交的信息和客户端的一些信息。客户端可以通过 HTML 表单提交数据,也可以在网页地址后提供参数。
然后服务器通过请求对象的相关方法获取这些数据。请求的各种方法主要用于处理客户端浏览器提交的请求中的各种参数和选项。
请求收录:请求URL、请求头、请求体等。
请求请求方法:GET/POST
请求url:url的全称是Uniform Resource Locator。一个网页文档、一张图片、一个视频等都可以由url唯一确定
请求头:User-agent:如果请求头中没有user-agent客户端配置,服务器可能会将你视为非法用户;
cookies:cookies用于存储登录信息
一般爬虫都会添加请求头
例如爬取百度网址的数据请求信息如下:
获取响应内容
爬虫发出请求后,如果服务器能正常响应,就会得到一个Response,即响应;
响应信息包括:html、json、图片、视频等,如果没有报错,可以看到网页的基本信息。例如:获取网页响应内容的流程如下:
import requests
request_headers={
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Cookie': 'BIDUPSID=088AEC1E85F75590978FB3643E131FBA; PSTM=1603682377; BD_UPN=12314753; BDUSS_BFESS=s877ukkvpiduup96naoovu0b94; __yjs_duid=1_04c448abb85383e7fef98fb64b828cce1611538687284; BAIDUID=C6421D51B2DBFF82716EE84B116A4EF8:FG=1; BDSFRCVID_BFESS=rqtOJeC62uF1xmOeQXfguRnVq2hi4t5TH6aINJzxxKt_7w4IsZNSEG0PVf8g0Kubuo1BogKKWeOTHx8F_2uxOjjg8UtVJeC6EG0Ptf8g0f5; H_BDCLCKID_SF_BFESS=tbCH_ItXfCP3JRnYb-Qoq4D_MfOtetJyaR0fKU7vWJ5TEJjz3tuabp_8Lx4H3bQNaHc3Wlvctn3cShPCy-7m-p_z-J6bK6jULNchMhrL3l02VMQae-t2ynLV5HAOW-RMW23U0l7mWPPWsxA45J7cM4IseboJLfT-0bc4KKJxbnLWeIJEjjChDTcyeaLDqbQX2COXsROs2ROOKRcgq4bohjPDynn9BtQmJJrtX4Jtb4oqE4FxQRoChlKJhJAO2JJqQg-q3R5lLt02VlQueq3vBP0Fbfv80x-jLIOOVn0MW-KVo-Jz5tnJyUPibtnnBnkO3H8HL4nv2JcJbM5m3x6qLTKkQN3T-PKO5bRu_CFbtC_hMD-6j6RV-tAjqG-jJTkjt-o2WbCQ-tjM8pcNLTDK5f5L2Mc9Klov5DvtbJrC-CosjDbmjqO1j4_PX46EhnvibN8fLKbY-McFVp5jDh34b6ksD-Rt5JQytmry0hvcQb5cShn9eMjrDRLbXU6BK5vPbNcZ0l8K3l02V-bIe-t2b6Qh-p52f6LjJbC83e; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_PS_PSSID=33425_33439_33258_33272_31660_33463_33459_33321_33264; BAIDUID_BFESS=983CAD9571DCC96332320F573A4A81D5:FG=1; delPer=0; BD_CK_SAM=1; PSINO=7; BDRCVFR[tox4WRQ4-Km]=mk3SLVN4HKm; BDRCVFR[-pGxjrCMryR]=mk3SLVN4HKm; BDRCVFR[CLK3Lyfkr9D]=mk3SLVN4HKm; BDRCVFR[dG2JNJb_ajR]=mk3SLVN4HKm; BD_HOME=1; H_PS_645EC=0c49V2LWy0d6V4FbFplBYiy6xyUu88szhVpw2raoJDgdtE3AL0TxHMUUFPM; BA_HECTOR=0l05812h21248584dc1g38qhn0r; COOKIE_SESSION=1_0_8_3_3_9_0_0_7_3_0_1_5365_0_3_0_1614047800_0_1614047797%7C9%23418111_17_1611988660%7C5; BDSVRTM=1',
'Host':'www.baidu.com',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'}
response = requests.get('https://www.baidu.com/s',params={'wd':'帅哥'},headers=request_headers) #params内部就是调用urlencode
print(response.text)
以上内容的输出就是网页的基本信息,包括html、json、图片、视频等,如下图所示:
Response 会在响应后返回一些响应信息,例如:
1、响应状态
2、响应头
3、预览是网页的源代码
4、解析内容
解析html数据:解析html数据的方法包括使用正则表达式、Beautifulsoup、pyquery等第三方解析库。
解析json数据:解析json数据可以使用json模块
解析二进制数据:作为 b 写入文件
5、保存数据
爬取的数据以文件的形式保存在本地或直接存储在数据库中,数据库可以是MySQL、Mongdb、Redis、Oracle等...
写在最后
爬虫的一般过程可以理解为:蜘蛛想要捕捉猎物-->沿着蛛丝寻找猎物-->吃掉猎物;即爬取-->解析-->存储;
爬取数据过程中需要的参考工具如下:
总结
今天的文章就是对爬虫原理做一个详细的讲解,希望对大家有所帮助,也为后面的工作打下基础!