python+urllib+beautifulSoup实现一个简单的爬虫

urllib是python3.x中提供的一系列操作的URL的库,它可以轻松的模拟用户使用浏览器访问网页.

Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间.

1、安装python最新安装包3.5.2

  下载地址:https://www.python.org/


  注:安装的时候注意勾选添加到PATH(系统环境变量)中

  验证安装是否成功: 在命令行cmd中输入python,如果进入到python的编辑环境,则安装成功。

  

2、安装urllib

  在python命令行中输入:from urllib.request import urlopen

  显示如下:没有出现错误信息则安装成功

  

3、安装BeautifulSoup

  在cmd中输入:pip install beautifulsoup4

  

  验证是否装成功:form bs4 import BeautifulSoup  如果没有报错就是安装成功

  

4、urllib的用法介绍

 (1)使用步骤

  • 导入urllib库的request模块 from urllib import request
  • 请求URL req = request.Request(URL)
  • 设置请求头 req.add_header(key,value)
  • 使用响应对象输出数据print(resp.read().decode('utf-8'))
from urllib import request

req = request.Request("http://www.baidu.com")

req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0")

resp = request.urlopen(req)

print(resp.read().decode("utf-8"))

这里我用sublime Text 测试:可以看到百度首页的数据是可以被获取下来的。

  

 (2)post请求

  • 导入urllib库下面的parse: from urllib import parse
  • 使用urlencode生成post数据

         postData = parse.urlencode([

           (key1,val1),

           (key2,val2),

           (key3,val3)

  ])

  • 使用postData发送POST请求 request.urlopen(req,data = postData.encode('utf-8'))
  • 得到请求状态 resp.status
  • 得到服务器类型 resp.reason

       

from urllib.request import urlopen
from urllib.request import Request
from urllib import parse

req = Request('http://huochepiao.114piaowu.com/train/ydTrainZdz_searchAdapter.action')

postData = parse.urlencode({
    'fromStation':'上海',
    'godateStr':'2016-09-07',
    'searchType':0,
    'toStation':'广州'
}).encode('utf-8')

req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0")

resp = urlopen(req,data = postData)

print(resp.read().decode('utf-8'))

 5、beautifulSoup使用简介

  http://beautifulsoup.readthedocs.io/zh_CN/latest/#id20

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值