新手python爬虫代码-新手小白 做python爬虫 爬什么网站比较简单?

本篇文章就新手小白来说,教大家怎么爬虫。现学现卖,看完再自己操作操作就会了~我就是这么学的,分享给想用python爬虫的小伙伴:

放个懒人目录:网络爬虫的行径

URL初步的概念

python与urllib2

合理爬数据的身份

以贴吧为例的小爬虫

python爬虫学习相关视频和配套资料

1.在这里问问题的小伙伴应该都了解什么是爬虫了,我就不解释了,爬虫程序会高效的并且准确的拿到我们想要在网上获取的信息。不多说了,了解一下爬虫的行为:网页首页→读取网页内容→找到网页的其他链接→其他的网页首页... />

也就是这样的循环,知道这个网站上面所有的网页都吃光。

2.URL的初步概念

首先介绍一下浏览网页的基本过程:随便找个你要爬的地址本地浏览器(客户端)--------请求-----→传智服务器

本地浏览器(客户端)←-----文件数据----传智服务器

本地浏览器(客户端)进行解析文件数据并且展现 />

3.python与urllib2

在下面的例子里面我用的是python2.7.x版本。这里我们需要的组件是:urllib2(它是python获取URL的一个组件)

首先我们要创建一个urllib2_test01.py,输入下面代码: />

其实最简单的获取信息需要的代码只有四行,然后就要执行了。可以写: />

执行以后看到的结果如下: />

实际上,我们在浏览器上面打开的百度主页,右键选择查看源代码的话,就能发现,跟我们刚刚执行后看到的结果是一模一样的,也就是说上面这四个代码已经帮我们把百度首页的全部代码爬了下来。下面解释一下这4行代码的意思: />

上面这步就是把刚刚说的组件(urllib2)引入给我们提供使用 />

然后调用urllib2库中的URLopen这个方法是接受一个url地址,然后把请求以后我们得到的回应封装到一个叫response的对象里面; />

之后调用response对象read()方法,把请求的回应内容用字符串的形式给html这个变量。最后的话print html就是把这些字符串打出来。上面就是最最基本的url请求对应的python代码。

还有第二种写法: />

这是将一个url的地址转换成一个request请求对象,再将request请求对象作为参数传递给urlopen的方法。但是直接用组件给网站发送一个请求的话,很唐突。就好像陌生人直接推开我们的房门就进来了,所谓房间的主人就会拒绝。

4.合理身份

这个时候我们就需要给上面代码加一个合理的身份,也就是User-Agent;这个抬头呢只需要了解就可以,作用就是浏览器是世界上被允许的身份,我们需要伪装成一个被公认的浏览器。我们伪装的办法就是给自己的请求上面加一个User-Agent头

下面开始操作,编辑urllib_test03.py />

上面就是url一个的基本操作,如果想要实现一个简单的爬虫,上面这些就足够。但是如果要深入的去了解urllib2的其他操作,这个还满足不了我们。

5.贴吧为例的小爬虫

第一步我们要创建一个python文件,tieba_spider.py

然后输入百度贴吧的一个地址,比如:

上面这个是第一页lol吧的url,我们继续打开第二页第三页。

这里可以发现规律了,贴吧中每个页面的不一样,url出来最后的pb值剩下的都是一样的,我们就可以找到这个规律,写一个简单的小程序,来爬取lol吧的所有网页。

之前我们已经写出了一个爬取一个网页的代码。现在我们把它封装成一个小函数load_page让我们可以使用: />

下一步,我们就要写一个百度贴吧爬虫的接口,我们需要传递3个参数给这个接口,其中一个是我们要爬取的url地址,和要爬取的页码范围。 />

最后如果我们希望将爬取到的每页的信息存储在本地磁盘上,我们可以简单的写一个存储文件的接口。 />

下面就是写一个main函数,然后提示用户输入就可以爬取百度贴吧的url。

注意!百度贴吧最后页面是"pn=???"这里面的???是要传入的页面参数,所以我们再提供的时候不能包括??? />

综上所述,完整代码如下: /> />

好了,下面来测试一下小爬虫:

这里我们不要添加=后面的数字,因为要自动添加: />

最后会发现当前路径下的几个html页面,分别对应贴吧中对应的网页。这样一个简单的爬虫程序就搞定了。还有难一点的就是正则式和数量词的贪婪模式与非贪婪模式。等等...在这里就不一一说了。

可以看视频学习:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值