Python笔记:爬虫的实现2019-12-14

爬虫是python的一个特色,先让我们了解下爬虫的基本流程:

一、发起请求:通过HTTP库向目标站点发起请求(request),请求可以包含额外的header等信息,等待服务器响应。

二、获取响应内容:如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能是HTML,Json字符串,二进制数据(图片或者视频)等类型。

三、解析内容:得到的内容可能是HTML,可以用正则表达式,页面解析库进行解析,可能是Json,可以直接转换为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理。

四、保存数据:保存形式多样,可以存为文本,也可以保存到数据库,或者保存特定格式的文件。

我们用一个小例子入手,海关总署的网站示例,抓取首页包含“海关”的词出来。代码如下:

#-*- coding:utf-8 -*-

from bs4 import BeautifulSoup as bs

from urllib.request import urlopen

import re

import ssl

ssl._create_default_https_context = ssl._create_unverified_context #全局取消证书验证

#请求URL,并把结果用utf-8编码

req = urlopen("https://www.customs.gov.cn/").read().decode("utf-8")

#使用beautifulsoup去解析

soup = bs(req,"html.parser")

urllist = soup.find_all('option')

for url in urllist:

    if re.search('海关',str(url)):

      print(re.sub("[A-Za-z0-9\!\%\[\]\,\。\<\=\:\/\.\>\"]", "", str(url)))

    我print了一下soup,发现HTML里面包含“海关”词的主要是option项里,于是把html包含里面option的放入数组urllist,然后对这个字符串进行代换,剩下的中文显示出来即可。爬虫的重要点就是对soup对象进行加工,得到想要的信息。

    吐槽一下:海关总署的网站居然没有反爬虫。


你可能感兴趣的:(Python笔记:爬虫的实现2019-12-14)