python爬虫-第一个爬虫

1.本地安装了nginx, 在默认的html目录下建立测试html代码:

代码如图,即index.html导向a,b,c 3个html,a.html又可以导向aa,bb两个html,c.html可以导向cc.html。

2.修改nignx配置使得本地可以访问写的kmtest里的index.html。

参考文档https://www.cnblogs.com/erlou96/p/12091067.html

nginx默认访问html目录下的index,我在html下新创建了kmtest,然后kmtest里创建了测试用的index.html。修改完conf下的nginx.conf完之后,记得重启nginx生效。


3.然后访问本地http://localhost:1024/,发现自己写的html已经生效。

到此,准备工作已经完成,开始编写爬虫脚本。

二.爬虫脚本

1.如图

#!/usr/bin/env python3
#-*-coding=utf-8-*
__author__='km'
import urllib.request
from re import *

def download(url):
    result = urllib.request.urlopen(url=url)
    #注意这里是result.read(),而非response.read()
    content = result.read()
    # 解码
    htmlStr = content.decode('UTF-8')
    #print('1:',htmlStr) 调试
    return htmlStr
def analyse(htmlstr):
    #获取所有的a节点
    aList = findall('<a[^>]*>',htmlstr)
    result = []
    #print(aList) 调试 输出:
    #["<a herf='a.html'>", "<a herf='b.html'>", "<a herf='c.html'>"]
    #遍历a节点
    for a in aList:
        #从a节点中提取herf属性的值,比如a.html
        g = search('herf[\s]*=[]\s]*[]\'"]([^>\'""]*)[\'"]',a)
        if g != None:
            #获取herf的值,即a.html
            url = g.group(1)
            url = 'http://localhost:1024/'+url
            #print('3',url) 调试,输出类似:http://localhost:1024/a.html
            result.append(url)
    return result
def crawler(url):
    print(url)
    html = download(url)
    urls = analyse(html)
    #对每一个url递归调用
    for url in urls:
        crawler(url)
if __name__=='__main__':
    c = crawler('http://localhost:1024')


2.运行结果:

ps:备注下search()和re.search()的区别。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值