简单的爬虫学习笔记

作为一只小白刚开始学python,听到用python写爬虫就感觉十分的高端。当我看到知乎大佬们写爬虫用了各种库更懵逼了。

其实基础爬虫可以直接用python自带的库urllib,re(但确实用了requests后就不想用urllib)

写程序一定要心里有点B数,



>>>所以不妨先来想想我的爬虫是来干什么的

emmmm,小姐姐照片,我戳的美照。确立小目标后就准备开始了。



>>>爬虫到底是什么

还是很懵逼,我又要如何获取图片呢?

这时候我的html知识用上了:图片都是通过链接写到网站上的,通过链接就能找到这张图片

那么如何用链接找到图片呢:对服务器发送请求,它的response中就包含图片

所以我的任务具体化为:    要找到网站上图片链接,发送请求,然后保存到本地



>>>准备打开新世界的大门了

第一步:找到要爬的网页先发送一个小小的请求:

url=requests.get("url",headers={})              #最好加上头部,它还有其他作用(⊙?⊙)

第二步:分析网页

打开浏览器的开发者工具,就会可以在在Elements栏看见网页的html,然后在找到<img >标签下的链接,确认一下是不是所找的图片,如果是的话就拿小本本记下来,如果不是就继续找。

然后呢?

难道要一个个一个找吗?难道没有一劳永逸的办法吗?

这时候正则(re)模块j就要上场了,所以可以用网页请求返回的url.text中来找到我们想要的图片链接。

imglist=re.findall(“   ”,url.text)  

#url_list是图片链接的列表,“ “中要手动添加图片链接的相同部分,这用时候前面的小本本筛选一下就可以了(相当于索引)

第三步:再次发送请求

我们得到图片链接的列表后要挨个挨个发送图片链接的请求,用for循环再好不过了

第四步:保存到本地

法1:和发送请求一起写

法2.:先发请求再写入

m=requests.get("url_list",headers={})

with open(‘ m‘,‘wb‘) as f                    # ‘wb‘指写入二进制编码

f.write(m.content)                                           #m.content 指m的二进制编码

 

f.close()                                                          #最后关闭文件

第五步:检查本地相应文件夹查看是否含有相应文件

>>>然后组合一下(直接上图 ━┳━ ━┳━)

>>>心得体会:

写出来还是很有成就感的,但是很多时候都是格式的问题导致运行出错,所规范写法很重要啊

如:

保持地址在某个文件夹要这样写:‘c:\img ’

再比如:  x=x+1;      最后的分号一定不能没有

还有的就是找资料一定要带脑子,不能看到有什么就硬生生搬运过来,理解原理是最重要的

最后一点,胶水语言的库真是千变万化

原文地址:https://www.cnblogs.com/mskzj/p/8215312.html

时间: 2024-10-24 10:26:20

简单的爬虫学习笔记的相关文章

python网络爬虫学习笔记

python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章目录 1. 介绍: 2. 从简单语句中开始: 3. 传送数据给服务器 4. HTTP头-描述数据的数据 5. 异常 5.0.1. URLError 5.0.2. HTTPError 5.0.3. 处理异常 5.0.4. info和geturl 6. Opener和Handler 7. Basic Authentication 8. 代理 9. Timeout 设置 10. Cookie 11. Deb

python 爬虫学习笔记1

经过一段时间的学习,终于入了门 先爬一个csdn 的blog练练手 整体思路是首先判断某个blog有多少页 然后根据页数 去获得相应的url 再爬出每一页的title和对应的url 这里使用了BeautifulSoup来解析页面 #coding=utf-8 import urllib2 from bs4 import BeautifulSoup import sys reload(sys) sys.setdefaultencoding('utf-8') def query_item(input,

网络爬虫学习笔记(二)

一个简单网络爬虫的实现 --抓取网易新闻 这次来指定一个信息量稍大一点的抓取目标--网易新闻(国内新闻) http://news.163.com/domestic/ 这次要达到的目标: 1. 提取有用文本信息 2. 将新闻中所包含的图片信息保存在本地 3. 构建新的HTML文件,其中只包含有新闻主体内容与对应的图片信息 首先当然是通过Jsoup与给定的种子URL建立连接,获得网易新闻(国内新闻)首页的Document,并且在其中筛选出链接,这在上一篇已经提过:然而,我们发现这里得到的许多URL并

python3爬虫学习笔记

Robot.txt Robots协议(也称为爬虫协议.机器人协议等)的全称是"网络爬虫排除标准"(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取.查看百度的robots协议www.baidu.com/robots.txt 一个简单的爬虫程序 >>> import urllib.request >>> response = urllib.request.urlopen(&qu

[爬虫学习笔记]ScrapySharp简单封装为Requester

为了便于使用及日后的扩展,将Scrapy简单封装为了Requester,具体代码如下: using System; using System.Collections.Generic; using Crawler.Common; namespace Crawler.Protocol { public class Requester { private Uri Url { get; set; } private Browser Browser { get; set; } public Request

[爬虫学习笔记]基于 SimHash 的去重复处理模块ContentSeen的构建

      Internet上的一些站点常常存在着镜像网站(mirror),即两个网站的内容一样但网页对应的域名不同.这样会导致对同一份网页爬虫重复抓取多次.为了避免这种情况,对于每一份抓取到的网页,它首先需要进入ContentSeen模块.该模块会判断网页的内容是否和已下载过的某个网页的内容一致,如果一致,则该网页不会再被送去进行下一步的处理.这样的做法能够显著的降低爬虫需要下载的网页数.至于如果判断两个网页的内容是否一致,一般的思路是这样的:并不会去直接比较两个网页的内容,而是将网页的内容经

[爬虫学习笔记]C#基于ARSoft.Tools.Net的DNS解析模块(半成品)

      最近在做爬虫的作业,今天学习的内容是关于DNS解析模块的制作的.使用的库为ARSoft.Tools.Net,它是一个非常强大的开源DNS控件库,包含.Net SPF validation, SenderID validation以及DNS Client.DNS Server接口.使用该接口可轻松实现DNS客户请求端及服务器解析端.项目地址:http://arsofttoolsnet.codeplex.com/,Nuget包地址:https://www.nuget.org/packag

python 网络爬虫学习笔记(一)

为了方便,在Windows下我用了PyCharm,个人感觉这是一款优秀的python学习软件.爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来. 学习python爬虫前,先学习下其他的一些知识: (一)url URL,即统一资源定位符,也就是我们说的网址,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址.互联网上的每个文件都有一个唯一的URL,

[爬虫学习笔记]MemoryCache缓存的用法学习

      在完成了DNS解析模块之后,我意识到了DNS缓存机制也很有必要.在Redis,Memcache,和.Net自带的Cache之间,考虑到部署问题,最终选择了后者,之前在学习Web及开发的过程中用过System.Web.Caching.Cache这个类库,但是这次的爬虫程序我打算部署为桌面软件,所以选用了System.Runtime.Caching.MemoryCache(后期如有必要也会加入System.Web.Caching.Cache来适配Web端程序).       Memory