Python使用requests及BeautifulSoup构建爬虫实例代码


Posted in Python onJanuary 24, 2018

本文研究的主要是Python使用requests及BeautifulSoup构建一个网络爬虫,具体步骤如下。

功能说明

在Python下面可使用requests模块请求某个url获取响应的html文件,接着使用BeautifulSoup解析某个html。

案例

假设我要http://maoyan.com/board/4猫眼电影的top100电影的相关信息,如下截图:

Python使用requests及BeautifulSoup构建爬虫实例代码

获取电影的标题及url。

安装requests和BeautifulSoup

使用pip工具安装这两个工具。

pip install requests

Python使用requests及BeautifulSoup构建爬虫实例代码

pip install beautifulsoup4

Python使用requests及BeautifulSoup构建爬虫实例代码

程序

__author__ = 'Qian Yang'
# -*- coding:utf-8 -*-
import requests
from bs4 import BeautifulSoup
def get_one_page(url):
  response= requests.get(url)
  if response.status_code == 200:
    return response.content.decode("utf8","ignore").encode("gbk","ignore")
#采用BeautifulSoup解析
def bs4_paraser(html):
  all_value = []
  value = {}
  soup = BeautifulSoup(html,'html.parser')
  # 获取每一个电影
  all_div_item = soup.find_all('div', attrs={'class': 'movie-item-info'})
  for r in all_div_item:
    # 获取电影的名称和url
    title = r.find_all(name="p",attrs={"class":"name"})[0].string
    movie_url = r.find_all('p', attrs={'class': 'name'})[0].a['href']
    value['title'] = title
    value['movie_url'] = movie_url
    all_value.append(value)
    value = {}
  return all_value

def main():
  url = 'http://maoyan.com/board/4'
  html = get_one_page(url)
  all_value = bs4_paraser(html)
  print(all_value)

if __name__ == '__main__':
  main()

代码测试可用,实现效果:

Python使用requests及BeautifulSoup构建爬虫实例代码

总结

以上就是本文关于Python使用requests及BeautifulSoup构建爬虫实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python 学习笔记
Dec 27 Python
Python Tkinter基础控件用法
Sep 03 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
Dec 12 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
Feb 21 Python
python中sys.argv函数精简概括
Jul 08 Python
pandas 对日期类型数据的处理方法详解
Aug 08 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
Oct 24 Python
Python+appium框架原生代码实现App自动化测试详解
Mar 06 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
Mar 08 Python
使用Python对Dicom文件进行读取与写入的实现
Apr 20 Python
详解Flask开发技巧之异常处理
Jun 15 Python
Python字典的基础操作
Nov 01 Python
Python3结合Dlib实现人脸识别和剪切
Jan 24 #Python
深入浅析Python中的yield关键字
Jan 24 #Python
Python3.6安装及引入Requests库的实现方法
Jan 24 #Python
pycharm+django创建一个搜索网页实例代码
Jan 24 #Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
Jan 24 #Python
Sublime开发python程序的示例代码
Jan 24 #Python
安装python3的时候就是输入python3死活没有反应的解决方法
Jan 24 #Python
You might like
php实现的Cookies操作类实例
2014/09/24 PHP
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
PHP实现删除字符串中任何字符的函数
2015/08/11 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
PHP常见的几种攻击方式实例小结
2019/04/29 PHP
深入理解PHP+Mysql分布式事务与解决方案
2020/12/03 PHP
JavaScript版代码高亮
2006/06/26 Javascript
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
node.js中的fs.openSync方法使用说明
2014/12/17 Javascript
jquery实现简单的自动播放幻灯片效果
2015/06/13 Javascript
javascript实现列表切换效果
2016/05/02 Javascript
js提交form表单,并传递参数的实现方法
2016/05/25 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
2017/03/04 Javascript
Angular实现响应式表单
2017/08/04 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
[27:28]Ti4 冒泡赛第二天 iG vs NEWBEE 1
2014/07/15 DOTA
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
Python面向对象封装操作案例详解
2019/12/31 Python
opencv中图像叠加/图像融合/按位操作的实现
2020/04/01 Python
python中的yield from语法快速学习
2020/11/06 Python
彻底弄明白CSS3的Media Queries(跨平台设计)
2010/07/27 HTML / CSS
美国知名珠宝首饰品牌:Gemvara
2017/10/06 全球购物
婴儿地球:Baby Earth
2018/12/25 全球购物
大学竞选班长演讲稿
2014/04/24 职场文书
工作证明格式及范本
2014/09/12 职场文书
副总经理岗位职责范本
2015/04/08 职场文书
原告离婚代理词
2015/05/23 职场文书
风雨哈佛路观后感
2015/06/03 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript