圣狐网-专业源码交易-源码商城-外包接单

热门搜索: 直播    短视频    小程序   

python 网站爬虫需要哪些技术?

分类:技术分享 时间:2023-11-05 00:18 浏览:77
概述
一、前言前几天在Python最强王者群【刘桓鸣】问了一个Python网络爬虫的问题,这里拿出来给大家分享下。他自己的代码如下:import requests key = input(”请输入关键字”) res = requests.post(     url=”https://jf.10086.cn/cm
内容

一、前言

前几天在Python最强王者群【刘桓鸣

】问了一个Python网络爬虫的问题,这里拿出来给大家分享下。

他自己的代码如下:

import requests

key = input("请输入关键字")

res = requests.post(
    url="https://jf.10086.cn/cmcc-web-shop/search/query

",
    data={
    "sortColumn" : "default
",
    "sortType": "DESC",
    "pageSize": "60",
    "pageNum": "1",
    "firstKeyword": key,
    "integral": "",
    "province": ""},
    headers={"User_Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36"}
)


print(res.json())

二、实现过程

这里【隔壁 山楂

】指出拿到的数据需要用json解析,后来【瑜亮

老师】指出是参数加少了。

甯同学指出,需要在请求头里边加上origin,后来【eric】给出了一个对应代码,如下所示:

import requests


headers = {
    "authority": "jf.10086.cn",
    "accept": "*/*",
    "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
    "content-type": "application/x-www-form-urlencoded;charset
=UTF-8",
    "origin": "https://jf.10086.cn",
    "referer": "https://jf.10086.cn/",
    "sec-ch-ua
": ""Microsoft Edge";v="113", "Chromium";v="113", "Not-A.Brand";v="24"",
    "sec-ch-ua-mobile
": "?0",
    "sec-ch-ua-platform
": ""Windows"",
    "sec-fetch-dest
": "empty",
    "sec-fetch-mode
": "cors",
    "sec-fetch-site
": "same-origin",
    "sessionid": "",
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
    Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.42"
}
cookies = {
    "sajssdk
_2015_cross_new_user": "1",
    "sensorsdata2015jssdkcross
": "%7B%22distinct_id%22%3A%221882e060ca319-0c9999999999998-7b515477-921600-1882e060ca46ed%22%2C%22first_id%22%
3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source
_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword
%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer
%22%3A%22%22%7D%2C%22identities
%22%3A%22eyIkaWRlbnRpdHlfY29va2llX2lkIjoiMTg4MmUwNjBjYTMxOS0wYzk5OTk5OTk5OTk5OTgtN2I1MTU0NzctOTIxNjAwLTE4ODJlMDY
wY2E0NmVkIn0%3D%22%2C%22history_login_id%22%3A%7B%22name%22%3A%22%22%2C%22value%22%3A%22%22%7D%2C%22%24device_id%
22%3A%221882e060ca319-0c9999999999998-7b515477-921600-1882e060ca46ed%22%7D",
    "BSFIT_EXPIRATION": "1684453169465",
    "BSFIT_DEVICEID": "eNgfgPaqBaS8qXzJHKXgXxJUCen3U5WF8tO1cjBaMqaDL7EKt2xK0J5XwThnB_kC-VbJC2t-N4axkF2UXAKhR
    vM7w7kNMRWX8pyxlMitEPPbnWVSnXSU4e2MZvpGBme1L3PX7et2B40xYhXg0MpYpfmUtnuJJTEQ"
}
url = "https://jf.10086.cn/cmcc-web-shop/search/query"
data = {
    "sortColumn": "default",
    "sortType": "DESC",
    "pageSize": "60",
    "pageNum": "1",
    "firstKeyword": "食用油
",
    "integral": "",
    "province": ""
}
response = requests.post(url, headers=headers, cookies=cookies, data=data)

代码运行之后,可以得到预期的数据:

这里【甯同学

】也给出了对应的代码,如下所示:

后来【瑜亮老师】测试发现,请求头里边只需要增加ua和origin就可以了。

顺利地解决了粉丝

的问题。

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Python网络爬虫

的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【刘桓鸣】提问,感谢【隔壁 山楂】、【瑜亮老师】、【eric】、【甯同学】给出的思路和代码解析,感谢【冷喵】、【Ineverleft】、【༺࿈黑科技

·鼓包࿈༻】等人参与学习交流。

【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据

,可以数据脱敏


后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。




发布于 2023-06-08 07:44

华科小徐


华科小徐


华科-一站式ip解决方案服务商

谢邀

对于从事网络爬虫


行业的资深技术员

来说,正常只要学会下面几点,基本就能够独立完成爬虫任务。

Python爬虫

需要学习的八个知识点:

1、 HTML

HTML被称为超文本标记语言

,有着一系列的标签,这些标签的组合可以显示出文字,图片,视频等内容。我们平时访问的网页,就是通过html编写的。但是想要像我们看到的网页那样漂亮,我们需要为文档添加css样式。如果想要漂亮的动画效果,想要图片能够自动播放,想要点击出现一些反馈,就需要JavaScript来编写脚本

啦。

2 、CSS

css能够对网页中的各种元素(这种元素即我们提到的HTML标签

),我们可以通过它来设置背景颜色,设置元素的大小位置,设置字体的排版等等。

3、 JavaScript

我们简称它为js,js的运行需要靠浏览器来运行。它是一种脚本语言

,具有即时编译

的特点。js可以做一些动态的操作,比如添加一个元素,改变元素的内容,改变css样式。

4、HTML标签

下面我写了一些常用的HTML标签

5、 选择器

在 CSS 中,我们使用 CSS 选择器来定位节点

。例如,下图中 div 节点的 id 为 asideProfile,那么就可以表示为 #asideProfile,其中 # 开头代表选择 id,其后紧跟 id 的名称。

另外,如果我们想选择 class 为aside-box

的节点,便可以使用 .aside-box,这里以点“.”开头代表选择 class,其后紧跟 class 的名称。

6、爬虫原理

互联网就是一张大网,而爬虫(即网络爬虫)便是在网上爬行的蜘蛛

。如果把网的节点比作一个个网页,爬虫爬到这就相当于访问了该页面,获取了其信息。可以把节点间的连线比作网页与网页之间的链接关系。

爬虫首先要做的工作就是获取网页,这里就是获取网页的源代码

。获取网页源代码后,接下来就是分析网页源代码,从中提取我们想要的数据。

提取信息后,我们可以简单保存为 TXT 文本或 JSON 文本,也可以保存到数据库

,如 MySQL 和 MongoDB 等,还可保存至远程服务器

7、JavaScript 渲染页面

现在网页越来越多地采用 Ajax、前端模块化

工具来构建,整个网页可能都是由 JavaScript 渲染出来的,也就是说原始的 HTML 代码就是一个空壳。

网页请求这个js文件,获取到该文件后,便会执行其中的 JavaScript 代码,而 JavaScript 则会改变 HTML 中的节点,向其添加内容,最后得到完整的页面。

对于,可以通过selenium

或者找到Ajax的请求地址就可以解决。

8、加密

爬取网站的时候,经常会遇到各种各样类似加密的情形,比如:字体加密

,构造参数加密, 想要抓取就必须要懂得找到对应的js文件,研究这些参数是怎么构造的,现在对于更多更全的信息都是通过 App 来展示的。一些 App 在内部实现的时候对代理加了一些校验,如绕过系统代理直接连接或者检测到了使用了代理,直接拒绝连接。这需要考虑使用 Wireshark、Tcpdump 在更底层的协议上抓包



评论
联系我们
客服热线: 0371-89908359
客服QQ:
投诉建议:
时间: 9:00-21:00
联系客服
售前咨询 售后咨询 联系客服
0371-89908359
手机版

扫一扫进手机版
返回顶部