1.什么是爬虫
爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来。想抓取什么?这个由你来控制它咯。
比如它在抓取一个网页,在这个网中他发现了一条道路,其实就是指向网页的超链接,那么它就可以爬到另一张网上来获取数据。这样,整个连在一起的大网对这之蜘蛛来说触手可及,分分钟爬下来不是事儿。
2.浏览网页的过程
在用户浏览网页的过程中,我们可能会看到许多好看的图片,比如 http://image.baidu.com/ ,我们会看到几张的图片以及百度搜索框,这个过程其实就是用户输入网址之后,经过DNS服务器,找到服务器主机,向服务器发出一个请求,服务器经过解析之后,发送给用户的浏览器 HTML、JS、CSS 等文件,浏览器解析出来,用户便可以看到形形色色的图片了。
因此,用户看到的网页实质是由 HTML 代码构成的,爬虫爬来的便是这些内容,通过分析和过滤这些 HTML 代码,实现对图片、文字等资源的获取。
3.URL的含义
URL,即统一资源定位符,也就是我们说的网址,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
URL的格式由三部分组成:
①第一部分是协议(或称为服务方式)。
②第二部分是存有该资源的主机IP地址(有时也包括端口号)。
③第三部分是主机资源的具体地址,如目录和文件名等。
爬虫爬取数据时必须要有一个目标的URL才可以获取数据,因此,它是爬虫获取数据的基本依据,准确理解它的含义对爬虫学习有很大帮助。
4、Python爬虫实战一之爬取糗事百科段子
# -*- coding:utf-8 -*-
import urllib
import urllib2
import re
page = 3
for i in range(1,page+1):
print "第",i,"页"
url = 'http://www.qiushibaike.com/hot/page/' + str(i)
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent' : user_agent }
try:
request = urllib2.Request(url,headers = headers)
response = urllib2.urlopen(request)
content = response.read().decode('utf-8')
# content="<span>后五个字了吗</span>sdadasdsad</span>"
pattern1 = re.compile(r"<h2>(.*?)</h2>",re.S)
pattern2 = re.compile(r"content\">\n+<span>(.*?)<\/span>",re.S)
# content\">\n+<span>(.*?)<\/span>
items1 = re.findall(pattern1,content)
items2 = re.findall(pattern2,content)
for i in range(0,len(items1)):
print '用户名:',items1[i],' ','内容:',items2[i]
except urllib2.URLError, e:
if hasattr(e,"code"):
print '2',e.code
if hasattr(e,"reason"):
print '3',e.reason
执行结果:
第 1 页
用户名: 绦子 内容: 夏天玩水最开心!~
用户名: 不着调的丶小情绪 内容: 这牛角没谁了
用户名: 刘家糗少爷 内容: 青岛崂山大拇指广场有一个小姑娘走丢了,已联系警察叔叔,希望父母看到早点领孩子回家,好事,各位顶高点
用户名: 江苏陈奕迅 内容: 那些自欺欺人说女朋友还在幼儿园的该醒醒了,现实多么残酷
用户名: 长夜伴我听雨声 内容: 不发对不起自己啊
第 2 页
用户名: 依旧是你的傻姑娘 内容: 早上老公跟同事出去,临走时给我做了几个鸡蛋饼,让我一个人在家吃。<br/>我:老公,中午我吃什么饭?<br/>老公:不是给你做了几个鸡蛋饼了吗?<br/>我:那我岂不是一天都吃鸡蛋饼?<br/>老公:不一样啊,早上吃热的,中午吃凉的。<br/>我。。。。。。
用户名: 旭巴巴 内容: 不知大家有没有骑车被狗追的经历~<br/>昨晚在马路边坐着纳凉,<br/>见一十五六的熊孩子骑着电瓶车飞驰而过,且边哭边喊“追我弄啥,麻辣隔壁哩”,楼主还以为闹鬼了~<br/>车子走后,只见两条狗紧追不舍…<br/>阿门,愿佛祖保佑你,孩子~<br/>被狗追的时候好惶恐,楼主被追过两次…
用户名: 胸平浪静 内容: 我哥自小就水性很好,小时候常到河里潜水摸鱼。<br/>有次我哥潜在河里摸鱼,碰巧邻村一个大爷也在河边撒网抓鱼,他见水里直冒泡泡,以为有大鱼,马上一网撒了下去......你能想象大爷当时的表情吗?一网拉上来,看见网里面有个男孩咧着嘴对他笑,大爷当场就吓晕了!
用户名: 不要酸菜只要老谭 内容: 这是亲兄弟吧
用户名: 一船夜光摇啊摇 内容: 我爸朋友圈唯一一条点赞过百的内容是我闺女大热天开车中暑了,不是因为她不会开冷气,哈哈哈哈~~~而是因为开错了暖气不懂关,哈哈哈哈~~~亲爹,哎~~
第 3 页
用户名: lovedones 内容: 这辈子上帝欠我一个青梅竹马
用户名: 你的老公掉了 内容: 真是林子大了什么鸟都有。昨天出差看见一个男的抱着充气娃娃去开房,还特么边走边吹气!
用户名: 二帅哥哥 内容: 千年等一回啊,西湖的水我的泪。<br/>霉了n年了,今天终于时来运转,老子捡到钱了。虽然只是半张。
用户名: 镜花水月卍空 内容: 哥几个,下了班去喝酒撸串吧?<br/>我赞成!<br/>我也去~<br/>我也要去~<br/>你就别去了!上次喝醉了,脱光衣服在街上哭,警察以为我们把你糟蹋了,白白关了几个小时!说什么也不带你了。
用户名: 我在乎的你~ 内容: 后五个字了吗