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装饰器使用方法实例
Nov 21 Python
Python入门篇之编程习惯与特点
Oct 17 Python
Python对文件操作知识汇总
May 15 Python
利用Python脚本实现ping百度和google的方法
Jan 24 Python
名片管理系统python版
Jan 11 Python
PyQt5每天必学之切换按钮
Aug 20 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
Feb 19 Python
Python自动抢红包教程详解
Jun 11 Python
python 实现创建文件夹和创建日志文件的方法
Jul 07 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
Jan 15 Python
python代码如何实现余弦相似性计算
Feb 09 Python
Python装饰器结合递归原理解析
Jul 02 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
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
2011/08/23 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/09/26 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
Winform客户端向web地址传参接收参数的方法
2016/05/17 Javascript
JavaScript 拖拽实例代码
2016/09/21 Javascript
原生JS实现图片左右轮播
2016/12/30 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
js canvas实现写字动画效果
2018/11/30 Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
2019/04/20 Javascript
[45:40]Ti4 冒泡赛第二天NEWBEE vs NaVi 1
2014/07/15 DOTA
Python实现可自定义大小的截屏功能
2018/01/20 Python
Python实现调用另一个路径下py文件中的函数方法总结
2018/06/07 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
2018/12/20 Python
python实现AES加密和解密
2019/03/27 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
PyQtGraph在pyqt中的应用及安装过程
2019/08/04 Python
Python自带的IDE在哪里
2020/07/01 Python
python程序如何进行保存
2020/07/03 Python
python自动化测试三部曲之request+django实现接口测试
2020/10/07 Python
Python类class参数self原理解析
2020/11/19 Python
欧迪办公美国官网:Office Depot
2016/08/22 全球购物
公务员职业生涯规划书范文  
2014/01/19 职场文书
感恩母亲节演讲稿
2014/05/07 职场文书
教师四风问题整改措施
2014/09/25 职场文书
2014幼儿园教师个人工作总结
2014/11/08 职场文书
邀请函模板
2015/02/02 职场文书
西安大雁塔导游词
2015/02/10 职场文书
交通事故代理词范文
2015/05/23 职场文书
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js
vue ref如何获取子组件属性值
2022/03/31 Vue.js
Go 内联优化让程序员爱不释手
2022/06/21 Golang