python-爬虫前的准备

前面断断续续地学习过python基本语法,针对已经热了很久的爬虫,准备捡起python来简单实现一下。
本节主要涉及知识点:urllib2,htmlParser,beautifulSoup4,redis-py,pyMysql等模块的使用,循环、file、socket、cgi编程的基本语法

环境:win64,python3.7.0,pyCharm
1、urllib2
在Python2.x中,分为Urllib库和Urllin2库,Python3.x之后都合并到Urllib库中。此处导入urllib.request模块

import urllib.request

url = 'http://www.cnblogs.com/mvc/AggSite/PostList.aspx'
result = urllib.request.urlopen(url).read()
# print(result)
html = result.decode('utf-8')
# print(html)

2、htmlParser
HTMLParser是python自带的解析模块,此处使用时继承HTMLParser类,自定义相关的解析方法

from html.parser import HTMLParser

class HtmlParseUtil(HTMLParser) :

    def handle_starttag(self, tag, attrs):
        # super().handle_starttag(tag, attrs)
        if tag == 'a':
            print("Encountered a start tag:", tag)
            # print(_attr('href',attrs))
            for item in attrs:
                if item[0] == 'href':
                    print('href:'+item[1])
        else:
            if tag == 'img':
                print("Encountered a start tag:", tag)
                for item in attrs:
                    if item[0] == 'src':
                        print('src:'+item[1])

    def handle_data(self, data):
        # super().handle_data(data)
        if self.lasttag == 'p':
            print('ppp--->'+data.strip())
        if self.lasttag == 'a':
            print('aaa--->'+data.strip())

引入自定义模块,创建自定义类,调用feed方法

from htmlParseUtil import HtmlParseUtil

parser = HtmlParseUtil()
parser.feed(html)

3、BeautifulSoup4
此模块需要安装,按照网上操作就可以了。这里遇到的一个坑是,安装成功后,在windows dos操作界面可以成功模块,在pyCharm中引入失败。找到的原因是该项目解析器会有一个默认的设置,打开项目配置,选择自己安装的python解析器就可以了。

关于bs4使用,此处推荐一个链接
使用中,主要是调用bs4中的find_all方法解析。

4、redis-py
先前系统中有安装安装redis服务器,此处不太记得清是python自带redis模块还是自己安装的了,但是过程也不复杂。使用中直接引入redis模块即可。

5、pyMysql
先前有安装mysql,这里手动安装pymysql模块,使用时引入pymysql模块。

6、socket
socket编程与其他语言无异,服务端开启侦听,客户端连接,继而收发报文。

7、cgi编程
部署apache服务器,修改配置文件,直接浏览器访问相关py资源。遇到问题为:修改apache配置文件,把权限之类的都放开,仍然无法访问cgi-bin目录下的.py文件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值