搜索 Python 共找到 52 条记录 x
想成为Python高手,必须看这篇爬虫原理介绍! 互联网是由一个个站点和网络设备组成的大网,我们通过浏览器访问站点,站点把HTML、JS、CSS代码返回给浏览器,这些代码经过浏览器解析、渲染,将丰富多彩的网页呈现我们眼前。 一、爬虫是什么? 如果我们把互联网比作一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点,而爬虫就是一只小蜘蛛,沿着网络抓取自己的猎物(数据)爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程序。 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用; 二、爬虫的基本流程 用户获取网络数据的方式: 方式1:浏览器提交请求--->下载网页代码--->解析成页面 方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中 爬虫要做的就是方式2。 1、发起请求 使用http库向目标站点发起请求,即发送一个Request Request包含:请求头、请求体等 Request模块缺陷:不能执行JS 和CSS 代码 2、获取响应内容 如果服务器能正常响应,则会得到一个Response Response包含:html,json,图片,视频等 3、解析内容 解析html数据:正则表达式(RE模块),第三方解析库如Beautifulsoup,pyquery等 解析json数据:json模块 解析二进制数据:以wb的方式写入文件 4、保存数据 数据库(MySQL,Mongdb、Redis) 文件 三、http协议 请求与响应 Request:用户将自己的信息通过浏览器(socket client)发送给服务器(socket server) Response:服务器接收请求,分析用户发来的请求信息,然后返回数据(返回的数据中可能包含其他链接,如:图片,js,css等) ps:浏览器在接收Response后,会解析其内容来显示给用户,而爬虫程序在模拟浏览器发送请求然后接收Response后,是要提取其中的有用数据。 四、 request 1、请求方式: 常见的请求方式:GET / POST 2、请求的URL url全球统一资源定位符,用来定义互联网上一个唯一的资源 例如:一张图片、一个文件、一段视频都可以用url唯一确定 url编码 https://www.baidu.com/s?wd=图片 图片会被编码(看示例代码) 网页的加载过程是: 加载一个网页,通常都是先加载document文档, 在解析document文档的时候,遇到链接,则针对超链接发起下载图片的请求 3、请求头 User-agent:请求头中如果没有user-agent客户端配置,服务端可能将你当做一个非法用户host; cookies:cookie用来保存登录信息 注意:一般做爬虫都会加上请求头 请求头需要注意的参数: (1)Referrer:访问源至哪里来(一些大型网站,会通过Referrer 做防盗链策略;所有爬虫也要注意模拟) (2)User-Agent:访问的浏览器(要加上否则会被当成爬虫程序) (3)cookie:请求头注意携带 4、请求体 请求体 如果是get方式,请求体没有内容 (get请求的请求体放在 url后面参数中,直接能看到)如果是post方式,请求体是format data ps: 1、登录窗口,文件上传等,信息都会被附加到请求体内 2、登录,输入错误的用户名密码,然后提交,就可以看到post,正确登录后页面通常会跳转,无法捕捉到post 五、 响应Response 1、响应状态码 200:代表成功 301:代表跳转 404:文件不存在 403:无权限访问 502:服务器错误 2、respone header 响应头需要注意的参数: (1)Set-Cookie:BDSVRTM=0; path=/:可能有多个,是来告诉浏览器,把cookie保存下来 (2)Content-Location:服务端响应头中包含Location返回浏览器之后,浏览器就会重新访问另一个页面 3、preview就是网页源代码 JSO数据 如网页html,图片 二进制数据等 六、总结 1、总结爬虫流程: 爬取--->解析--->存储 2、爬虫所需工具: 请求库:requests,selenium(可以驱动浏览器解析渲染CSS和JS,但有性能劣势(有用没用的网页都会加载);) 解析库:正则,beautifulsoup,pyquery 存储库:文件,MySQL,Mongodb,Redis 版权声明:本文为CSDN博主「weixin_45249120」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/weixin_45249120/article/details/94588420
百度图片下载爬虫实战笔记 免责声明:本文所记录的技术手段及实现过程,仅作为爬虫技术学习使用,不对任何人完全或部分地依据本文的全部或部分内容从事的任何事情和因其任何作为或不作为造成的后果承担任何责任。 爬取需求:根据关键字,爬取百度图片并下载到本地; 爬取工具:chrome浏览器、pycharm Python库:request 01 网站结构分析 打开百度首页,输入“美女”进行搜索: 分析页面请求,是通过ajax请求后端请求获取数据: 通过发送ajax请求,获取百度返回的json数据,解析json得到图片链接,下载链接即可; 02 创建爬虫 打开Pycharm开发工具,新建download_image.py,编写如下代码获取图片链接信息: import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36'}def start_html(url): html = requests.get(url, headers = headers) if html.status_code == 200: html.encoding = 'utf8' data_json = html.json()['data'] # 最后一行数据为空,需要去掉 for object_json in data_json[:-1]: print(object_json['middleURL']) else: print('ERROR:', url)if __name__ == '__main__': url = 'https://image.baidu.com/search/acjson?tn=resultjson_com&logid=11293838324117499305&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E7%BE%8E%E5%A5%B3&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&hd=&latest=©right=&word=%E7%BE%8E%E5%A5%B3&s=&se=&tab=&width=&height=& start_html(url)123456789101112131415161718192021 运行代码,能够成功获取图片地址。 03 下载图片 将获取到的图片,下载到本地: def download_image(image_url): image = requests.get(image_url, headers = headers) print('正在下载图片: {}...'.format(image_url)) # 创建文件夹 path = "images" if not os.path.exists(path): os.makedirs(path) # 开始下载图片 with open('images/{}.jpg'.format(uuid.uuid4()), 'wb') as file: for bit_data in image.iter_content(255): file.write(bit_data)12345678910111213 运行代码,图片已经下载到了本地。 04 翻页处理 通过比较翻页的url,发现百度图片是通过【rn】控制行数,【pn】控制起始页,本次仅作为练习使用,所以暂时只爬取前5页: if __name__ == '__main__': for pn in range(30, 151, 30): url = 'https://image.baidu.com/search/acjson?tn=resultjson_com&logid=11293838324117499305&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E7%BE%8E%E5%A5%B3&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&hd=&latest=©right=&word=%E7%BE%8E%E5%A5%B3&s=&se=&tab=&width=&height=&.format(pn) start_html(url)1234 运行代码,成功翻页!
windows下python安装pip 简易教程,具体内容如下 1.前提 你要已经安装了 某个 版本的 python, 下载地址) 安装后,需要配置python.exe 的环境变量,否则在 输入 python指令时,会出现如图错误 配置环境变量 鼠标右键我的电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 编辑PATH -> 在最后面加上我们的Python安装路径 -> 点击确定 注意:Path 路径最后要加上 分号 ; 例如我的路径 C:\Users\pandap\AppData\Local\Programs\Python\Python36-32; 再在控制台 输入 python 若显示相关信息即表示 配置成功,进如下一步 2.安装 pip 先下载 pip 下载地址 选择 :pip-9.0.1.tar.gz 文件进行下载(版本随意) 下载完成之后,解压到一个文件夹,用CMD控制台进入解压目录,输入: python setup.py install 同样,在安装pip后需先配置环境变量, pip 指令才能生效 找到 python 安装路径下 的 scripts 目录下,复制改路径,例如我的: C:\Users\pandap\AppData\Local\Programs\Python\Python36-32\Scripts 然后添加到环境变量中,注意结尾的分号! 在cmd 下输入 pip 若显示 如图 相关信息,表示安装成功 然后就可以方便的 利用 pip 加在其他工具包了, 例如 输入 pip install pymysql 进行 pymysql安装 successful!! 安装完成! 以上就是本文的全部内容,希望对大家的学习有所帮助。 版权声明:本文为CSDN博主「weixin_39611037」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/weixin_39611037/article/details/110279774
陕公网安备 61012502000223号
©www.gaoxuejun173.top