声明:

       本实验的操作系统是ubuntu,python 2.X

Code-1:抓取静态的title数据(无需登录用户)

获取淘宝主页的页面静态数据

url:http://www.taobao.com

#!/usr/bin/env   python
#-*- coding: utf-8 -*-
#@author   Amiber
#@date 2012-12-01
#@brief grap the static-web data with chinese languagfrom BeautifulSoup import BeautifulSoup
import urllib2url = r"http://www.taobao.com"resContent = urllib2.urlopen(url).read()
resContent = resContent.decode('gbk').encode('utf8')soup = BeautifulSoup(resContent)print soup.title.stringurl = r"http://www.news.baidu.com"
resContent = urllib2.urlopen(url).read().decode('gb18030').encode('utf8')soup = BeautifulSoup(resContent)print soup.title.string


Code-2:抓取静态网页中的table数据(无需登录用户)

获取的是国家统计局一个网上上的静态表格数据

#!/usr/bin/env   python
#!-*- coding:utf-8 -*-
#@author   Amiber
#@date 2012-12-01
#@brief grap the table-data in static-webfrom BeautifulSoup import BeautifulSoup
import urllib2
import re
import stringdef earse(strline,ch) :left = 0right = strline.find(ch)while right !=-1 :strline = strline.replace(ch,'')right = strline.find(ch)return strlineurl = r"http://www.bjstats.gov.cn/sjfb/bssj/jdsj/2012/201211/t20121130_239295.htm"resContent = urllib2.urlopen(url).read()resContent = resContent.decode('gb18030').encode('utf8')soup = BeautifulSoup(resContent)print soup('title')[0].stringtab= soup.findAll('table')trs = tab[len(tab)-1].findAll('tr')for trIter in trs :tds = trIter.findAll('td')for tdIter in tds :span = tdIter('span')for i in range(len(span)) :if span[i].string :print earse(span[i].string,' ').strip(),else :passprint 

Code-3:抓取静态网页中的文档数据(无需登录用户)

获取的是一个bbs网站的一个zip文档数据

#!/usr/bin/env   python
#!-*- coding:utf-8 -*-
#@author   Amiber
#@date 2012-12-01
#@brief download  the file from  web-sitefrom BeautifulSoup import BeautifulSoup
import urllib2
import string
import reurl = r"http://bbs.for68.com/getresource.php?rid=59906"re = urllib2.Request(url)rs = urllib2.urlopen(re).read()open('down.tar','wb').write(rs)

Code-4:抓取静态网页中的图片数据(无需登录用户)

获取一个网站上的图片数据

#!/usr/bin/env   python
#!-*- coding: utf-8 -*-
#@author   Amiber
#@date 2012-12-01
#@brieffrom BeautifulSoup import BeautifulSoup
import urllib2
import re
import stringurl = r"http://tu.365imgs.cn/img/h005/h84/img20121127094009JEn0.jpg"re = urllib2.Request(url)resouce = urllib2.urlopen(re).read()open("wall.jpg","wb").write(resouce)

Code-5:抓取静态网页中的数据(登录用户)

这个例子是参考了一个博客,登录人人网站并且抓取登录后的网页

#!/usr/bin/env   python
#!-*- coding: utf-8 -*-
#@author Amiber
#@date 2012-12-02
#@brief grap the data when log is neededimport urllib
import urllib2
import cookielib
from BeautifulSoup import BeautifulSoup
import string
import remyCookie = urllib2.HTTPCookieProcessor(cookielib.CookieJar())
openner = urllib2.build_opener(myCookie)post_data = {'email':'XXXXXXXX','password':'YYYYYYYYY','origURL':'http://www.renren.com/Home.do','domain':'renren.com'
}req = urllib2.Request('http://www.renren.com/PLogin.do',urllib.urlencode(post_data))resContent = openner.open(req).read()soup =  BeautifulSoup(resContent)print soup.prettify()

Code-6:抓取动态网页中的查询-1数据(无需登录用户)

此类别的查询数据是,当你改变查询条件,整个url都变。下面以抓取天气预报网站上的查询数据为例子

#!/usr/bin/env   python
#!-*- coding: utf-8 -*-
#@author   Amiber
#@date 2012-12-02
#@brief grap the query-data in static -web
#@brief the difference is that when you change your query,the url is differentfrom BeautifulSoup import BeautifulSoup
import urllib2
import re
import string
import sys
import codecsurl = r"http://www.weather.com.cn/weather/101070105.shtml"lookutf_8 = codecs.lookup('utf8')resContent = urllib2.urlopen(url).read()resContent = lookutf_8.decode(resContent)[0]
resContent = lookutf_8.encode(resContent)[0]soup = BeautifulSoup(resContent)weatherYuBao = soup.findAll('div',id='7d')
print weatherYuBaourl = r"http://www.weather.com.cn/weather/101010100.shtml?"resContent = urllib2.urlopen(url).read()resContent = lookutf_8.decode(resContent)[0]
resContent = lookutf_8.encode(resContent)[0]soup =BeautifulSoup(resContent)weatherYuBao = soup.findAll('div',id='7d')
print weatherYuBao

code-7:抓取动态网页中的查询-2数据(无需登录用户)

抓取的数据是互动百科的分类数,网址为:http://www.hudong.com/category/treeManage.jsp

通过对原网页代码研究:view-source:http://www.hudong.com/category/treeManage.jsp

可以找到js文件:http://www.huimg.cn/fenlei/js/Ajax_cate20111205.js

找到url的生成js函数为:searchcate

从而可以推断出ajax数据生成的url为:http://www.hudong.com/category/Ajax_cate.jsp?catename=%query%

#!/usr/bin/env   python
#!-*- coding: utf-8 -*-
#@author   Amiber
#@date 2012-12-02
#@brief    grep the hudong-tree-structor#keyUrl[0] = "http://www.hudong.con/category/treeManager.jsp"
#keyUrl[1] = "http://www.huimg.cn/fenlei/js/Ajax_cate20111205.js"
#KeyUrl[2] = "http://www.hudong/category/Ajax_cate.jsp?catename=%query%"from BeautifulSoup import BeautifulSoup
import re
import string
import urllib2
import codecs
import Queuebaseurl = "http://www.hudong.com/category/Ajax_cate.jsp?catename="def getAllCategory(contentList,query) :'''recusive get the tree-structure'''url = baseurl+urllib2.quote(query)resContent = urllib2.urlopen(url).read()if len(resContent) > 3 and resContent.find('}') !=-1 :resContent = resContent[2:len(resContent)-3]else :contentList.append([])return soup = BeautifulSoup(resContent)content = soup.__str__().split('},')conList = []print query,":",for cIter in content :tmpList = map(lambda str: str.strip('"').rstrip('"}]'),cIter.split(':'))elist =[]elist.append(tmpList[len(tmpList)-1])print tmpList[len(tmpList)-1],conList.append(elist)printcontentList.append(conList)for cLIter in conList :getAllCategory(cLIter,cLIter[0])def main() :query="页面总分类"url = baseurl+urllib2.quote(query)resContent = urllib2.urlopen(url).read()lookutf_8 = codecs.lookup('utf8')if len(resContent) >3 :resContent = resContent[2:len(resContent)-3]soup = BeautifulSoup(resContent)print query,": ",content = soup.__str__().split('},')contentList = []for cIter in content :tmpList = map(lambda str: str.strip('"').rstrip('"}]'),cIter.split(':'))elist = []elist.append(tmpList[len(tmpList)-1])print tmpList[len(tmpList)-1],contentList.append(elist)print for cIter in contentList :getAllCategory(cIter,cIter[0])print if __name__ == '__main__' :main()

Notice:考虑到速度问题,可以在迭代求子分类的时候采用多线程,因为分类中间彼此独立

生成数据部分显示:

页面总分类 :  自然 文化 人物 历史 生活 社会 艺术 经济 科学 体育 技术 地理 HOT
自然 : 植物 动物 自然现象 自然资源 环境保护 微生物 宇宙天文 生物 自然理论 自然遗产 地质灾害 生物分类
植物 : 种子植物 藻类植物 农作物 植物理论 各类型植物 珍稀濒危植物 蕨类植物 各国植物 苔藓类植物 菌类植物 地衣植物 苔藓植物 植物栽培 园林植物 热带植物 植物分类表 绿色植物 水生植物
种子植物 : 裸子植物
裸子植物 : 裸子植物名称
农作物 : 玉米
植物理论 : 植物科名 生命 植物科属 植物分类 植物学名词
生命 : 元素
各类型植物 : 草本植物 可以食用的植物 观赏植物 被子植物分支 竹 孑遗植物 有毒植物 食肉植物 木本植物 著名植物 药用植物 一年生植物 捕虫植物 形形色色植物 趣味植物 受保护植物 罕见植物 园林绿化植物 经济植物 各类植物名称 低等植物 高等植物 花木 中国进境植物检疫危险性病虫草 植物名称 双子叶植物 藤本植物 浮游植物 沙漠植物
草本植物 : 草本
可以食用的植物 : 水果 蔬菜 茶 调味品 草本茶 谷类 香草 可食用果仁 玉米
水果 : 水果种类 减肥水果 果汁水果 梨
水果种类 : 浆果 核果 坚果 仁果 柑橘 瓜
仁果 : 梨
瓜 : 西瓜
果汁水果 : 防腐剂 纤维素 维生素C
蔬菜 : 食用菌 蔬菜种植 蔬菜配送 蔬菜农药 脱水蔬菜 蔬菜种子 野菜
蔬菜配送 : 食堂管理 农副产品
蔬菜农药 : 定量分析 工商局
茶 : 茶学 茶文化 中国各种茶名 中国名茶 茶的种类
茶学 : 茶文化 茶学文献
茶文化 : 茶具 茶道 茶艺 制茶方法 茶健康
茶具 : 茶杯 茶壶
茶壶 : 紫砂壶
茶道 : 日本茶道
茶文化 : 茶具 茶道 茶艺 制茶方法 茶健康
茶具 : 茶杯 茶壶
茶壶 : 紫砂壶
茶道 : 日本茶道
中国名茶 : 铁观音 普洱茶
茶的种类 : 白茶 绿茶 黑茶 红茶 黄茶 花茶 草本茶 凉茶 乌龙茶 紧压茶 普洱茶 别类茶
调味品 : 甜味剂 酱 香草 广东调味料 亚洲调味料 醋 食盐 烹调调料 调料
甜味剂 : 二糖
酱 : 酱油 咖哩
咖哩 : 咖哩食品
广东调味料 : 香港调味料
烹调调料 : 香料
调料 : 烹调调料
烹调调料 : 香料
谷类 : 谷类食品 水稻
谷类食品 : 面粉制品 稻米食品
面粉制品 : 面包 面条 蛋糕 饼干 烤饼 油炸面食
面包 : 三明治 饼店
面条 : 即食面 意式面食 中式面条 日式面条
日式面条 : 日本面条食品
蛋糕 : 饼店
饼干 : 饼店 馅饼
稻米食品 : 饭 粥 糯米食品
饭 : 炒饭 寿司
水稻 : 杂交水稻
观赏植物 : 观叶植物
被子植物分支 : 单子叶植物分支 木兰分支 睡莲科 金鱼藻目 木兰藤目 金粟兰科 无油樟科
单子叶植物分支 : 鸭跖草分支 天门冬目 薯蓣目 无叶莲科
鸭跖草分支 : 禾本目
禾本目 : 禾本科 莎草科 梭子草科 香蒲科 凤梨科 灯心草科 帚灯草科 黑三棱科 黄眼草科 苔草科 刺鳞草科 须叶藤科 谷精草科
禾本科 : 结缕草属 画眉草属 芨芨草属 酸竹属 尖稃草属 凤头黍属 山羊草属 獐毛属 冰草属 剪股颖属 银须草属 毛颖草属 看麦娘属 悬竹属 须芒草属 异颖草属 黄花茅属 水蔗草属 楔颖草属 三芒草属 燕麦草属 荩草属 野古草属 芦竹属 沟稃草属 燕麦属 地毯草属 簕竹属 巴山木竹属 菵草属 孔颖草属 格兰马草属 臂形草属 短颖草属 短柄草属 短穗竹属 凌风草属 雀麦属 扁穗草属 野牛草属 拂子茅属 细柄草属 沿沟草属 小沿沟草属 蒺藜草属 酸模芒属 空竹属 山涧草属 寒竹属 香竹属 虎尾草属 金须茅属 单蕊草属 隐子草属 小丽草属 空轴茅属 薏苡属 莎禾属 蒲苇属 隐花草属 香茅属 狗牙根属 洋狗尾草属 弓果黍属 鸭茅属 龙爪茅属 扁芒草属 绿竹属 牡竹属 发草属 羽穗草属 野青茅属 双药芒属 龙常草属 二型花属 双花草属 马唐属 觿茅属 弯穗草属 双稃草属 镰序竹属 毛蕊草属 油芒属 稗属 穇属 披碱草属 偃麦草属 总苞草属 九顶草属 肠须草属 细画眉草属 蜈蚣草属 旱禾属 旱茅属 旱麦草属 鹧鸪草属 蔗茅属 野黍属 类蜀黍属 黄金茅属 拟金茅属 真穗草属 箭竹属 铁竹属 羊茅属 耳稃草属 井冈寒竹属 吉曼草属 巨竹属 甜茅属 球穗草属 镰稃草属 异燕麦属 牛鞭草属 假蛇尾草属 黄茅属 茅香属 绒毛草属 大麦属 水禾属 膜稃草属 苞茅属 猬草属 距花黍属 白茅属 箬竹属 大节竹属 柳叶箬属 鸭嘴草属 旱莠竹属 假稻属 囊稃竹属 千金子属 薄稃草属 细穗草属 银穗草属 赖草属 单竹属 扇穗茅属 黑麦草属 淡竹叶属 臭草属 糖蜜草属 梨藤竹属 梨竹属 月月竹属 异枝竹属 小草属 莠竹属 粟草属 芒属 毛俭草属 麦氏草属 单枝竹属 乱子草属 河八王属 山鸡谷草属 新小竹属 慈竹属 类芦属 少穗竹属 蛇尾草属 求米草属 固沙草属 直芒草属 稻属 落芒草属 露籽草属 黍属 假拟沿沟草属 假牛鞭草属 类雀稗属 雀稗属 狼尾草属 茅根属 束尾草属 显子草属 虉草属 梯牧草属 芦苇属 刚竹属 大明竹属 早熟禾属 金发草属 棒头草属 多裔草属 单序草属 沙鞭属 新麦草属 假铁秆草属 钩毛草属 假金发草属 伪针茅属 矢竹属 泡竹属 细柄茅属 碱茅属 筇竹属 红毛草属 鹅观草属 筒轴茅属 甘蔗属 囊颖草属 赤竹属 齿稃草属 裂稃茅属 硬草属 水茅属 黑麦属 沟颖草属 业平竹属 狗尾草属 刺毛头黍属 倭竹属 唐竹属 三蕊草属 高粱属 米草属 稗荩属 鬣刺属 大油芒属 鼠尾栗属 钝叶草属 冠毛草属 针茅属 坚轴草属 筱竹属 菅属 蒭雷草属 锥茅属 泰竹属 粽叶芦属 钝基草属 锋芒草属 荻属 三角草属 草沙蚕属 磨擦草属 三毛草属 小麦属 尾稃草属 香根草属 鼠茅属 玉山竹属 玉蜀黍属 菰属 裂稃草属

利用python抓取网页各种类型内容(静态、动态)相关推荐

  1. 利用python抓取网页上的数独,并用回溯法破解

    这里抓取的是https://www.oubk.com/上不用登陆就能查看的数独 以下是抓取数独的代码: class Crawl_shudu(object):def __init__(self,url) ...

  2. 利用Crowbar抓取网页异步加载的内容 [Python俱乐部]

    利用Crowbar抓取网页异步加载的内容 [Python俱乐部] 利用Crowbar抓取网页异步加载的内容 [Python俱乐部] 利用Crowbar抓取网页异步加载的内容 在做 Web 信息提取.数 ...

  3. python爬取pdf教程_#如何利用Python抓取PDF中的某些内容#python爬取pdf教程

    如何利用Python抓取PDF中的某些内容 学生每天要学习,工作者要工作,家庭主妇每都要务.不论做什么,都有着相应的操作流同样就会有操作技巧.学生运用技巧学习才不会累,学得还会更快更多:工作者掌握技巧 ...

  4. python抓取网页文章_使用Python从公共API抓取新闻和文章

    python抓取网页文章 Whether you are data scientist, programmer or AI specialist, you surely can put huge nu ...

  5. 利用Python抓取搜索引擎结果

    前一段时间一直在研究如何用python抓取搜索引擎结果,在实现的过程中遇到了很多的问题,我把我遇到的问题都记录下来,希望以后遇到同样问题的童鞋不要再走弯路. 1. 搜索引擎的选取 选择一个好的搜索引擎 ...

  6. python 搜索引擎_利用Python抓取搜索引擎结果

    前一段时间一直在研究如何用python抓取搜索引擎结果,在实现的过程中遇到了很多的问题,我把我遇到的问题都记录下来,希望以后遇到同样问题的童鞋不要再走弯路. 1. 搜索引擎的选取 选择一个好的搜索引擎 ...

  7. Python抓取网页中的动态序列化数据

    Python抓取网页中的动态序列化数据 动态序列化数据经常应用于前后端分离的页面.或者通过VUE.JS等HTML页面环境,常规的爬虫抓取方法并不能满足数据采集的要求,因此需要其他的方式进行数据的采集. ...

  8. php抓取标签内的内容,php抓取网页中的内容

    以下就是几种常用的用php抓取网页中的内容的方法. 1.file_get_contents PHP代码 代码如下:>>>>>>>>>>> ...

  9. pythonallowpos_利用Python抓取并分析京东商品评论数据

    2.1 内容简介 本章主要介绍如何利用Python抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化.下面是要抓取的商品信息,一款女士文胸.这个商品共有红色,黑色和肤色等颜色, 70B到90D ...

最新文章

  1. JAVA复习(二维数组——快排——迷宫)
  2. oracle 在所有表中查某个值,oracle需要查询某个字段的值在其他某个表中有没的值有相同...
  3. 通过ssh方式clone项目_参与开源项目流程
  4. subtext3php,sublime text3怎么快速查找和替换?快捷键是什么
  5. slurm安装配置_安装Slurm_鲲鹏高性能计算解决方案_安装指南_Slurm 18.08.7 安装指南_Slurm的安装配置_华为云...
  6. 苹果本周四将发布 OS X Yosemite 公开测试版
  7. 大规模C++软件开发 - notes
  8. 如何使用3klCon实现大规模自动化网络侦察
  9. pdf转换成ppt转换器免费版
  10. C语言atoi、atol、atoll和atoq函数
  11. 【小萝莉说Crash】第二期:Unrecognized selector xxx 之 ForwardInvocation
  12. 计算机游戏中屏幕上显示的,计算机显示器选择弧形屏幕还是直接屏幕?主游戏...
  13. GSMA启用包容性技术实验室
  14. Fedora安装字体方法和Ubuntu非常不同!
  15. python imshow调整比例_如何在不拉伸图像的情况下更改matplotlib中imshow的比例?
  16. 计算机视觉结合深度学习项目-智能停车场空车位实时识别
  17. Django Admin 上传多张图片并显示缩略图
  18. 【Java 基础语法01】 举例描述二进制和十进制的互转
  19. e4a数据库mysql中间件_[e4a同步内陆数据库至mysql]?确立一个中间件毗邻数据库
  20. 理解Memcached缓存[转载]

热门文章

  1. es android,ES文件浏览器
  2. 多线程经典问题 卖票问题
  3. 仿5173游戏交易平台系统SQL注入(可直接脱裤)+Getshell
  4. (C语言)写一个函数,实现两个字符串的比较, 即自己写一个strcmp函数,函数原型为int strcmp(const char* p1, const char* p2)
  5. 用安卓手机看txt小说,阅读器APP怎么选
  6. IP-Guard桌面安全解决方案
  7. windows api 控制屏幕亮度
  8. 享学堂-架构师网课笔记-JVM-L11+L12(排查实战,项目总结)
  9. import torch报错ImportError: libopenblas.so.0: cannot open shared object file: No such file or directo
  10. ubuntu安装man中文帮助文档:man c/c++