Python爬取简单网页内容
分享一下第一次学习爬虫的过程。之前一直有听说过爬虫,但是也没有接触过爬虫。在需要爬取网页信息的时候,才开始着手学习爬虫。Python爬虫有很多种方法,例如使用scrapy,xpath,panda等,都可以实现爬取网页内容的需求。今天要分享的是我学习爬虫的第一种方法。使用最原始的正则,去匹配网页中的内容。
1.导入re模块
re 模块使 Python 语言拥有全部的正则表达式功能。compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。re模块中还包含很多其他的函数,但是我们只需要用到compile函数。
import re
2.导入urllib库
urllib库主要具有以下功能:网页请求、响应获取、代理和cookie设置、异常处理、URL解析。我们需要请求网页,获取网页信息,需要用到urllib库。
import urllib.request
3.获取网页内容
使用urllib的request中的urlopen打开网址
读取网页源代码,并且转码为utf-8
可以直接print,查看一下获取到的网页源代码
url='https://......'
a = urllib.request.urlopen(url)#打开网址
html = a.read().decode('utf-8')#读取源代码并转为unicode
print(html)
4.使用正则获取网页中需要的信息
调用re的compile函数,编写正则,匹配对应的源代码信息,输出获取到的信息
reg=re.compile(r'<span class="edu">(.*?)</span>',re.S)
items=re.findall(reg,html)
print(items)
5.可能出现的问题
有些网站可能反爬机制比较强,直接使用requests可能不能直接获取到网页的源代码。如果在第三步遇到不能获取网页源代码的情况,可以添加一个header,利用header来打开网址,获取网页的源代码。header中包括user-agent和cookie。通过打开需要爬取的网址,按f12可查询网页的user-agent和cookie。