tag 标签: 爬虫

相关博文
  • 2017-11-9 09:02
    331 次阅读|
    0 个评论
    YAML: 信息无类型,文本信息比例最高,可读性好 (一)信息的标记 标记后的信息可以形成信息组织结构,增加了维度; 标记后的信息可以用于通信、存储或展示; 标记的结构与信息一样具有重要的价值; 1、XML XML: 最早的通用标记语言,可扩展性好,但是繁琐; Internet 上的信息交互与传递; 2、JSON JSON: 信息有类型,适合程序处理,较 XML 简洁; 移动应用云端和节点的信息通信,无注释; 3、YAML YAML:信息无类型,文本信息比例最高,可读性好 各类系统的配置文件,有注释易读 (二)信息的提取 方法一:完整解析信息的标记形式,再提取关键信息。需要标记解析器,例如: bs4 库的标签树遍历;      优点:信息解析准确;      缺点:提取过程繁琐,速度慢 方法二:无视标记形式,直接搜索关键信息 测试代码 1、.find_all(name,attrs,recursive,string,**kwargs)   返回一个列表 类型,存储查找结果。 (1) name: 对标签名称的检索字符串 (2)attrs: 对标签属性值检索的字符串,可标注属性检索 (3)recursive: 是否对子孙全部检索,默认 True (4)string: …/ 中字符串区域的检索字符串 ​ ​
  • 热度 1
    2017-11-8 19:16
    447 次阅读|
    0 个评论
    Beautiful Soup 可以对 html,xml 格式进行解析并且提取相关的信息。 参考链接: https://www.crummy.com/software/BeautifulSoup/ (一)Beautiful Soup的使用 from bs4 import BeautifulSoup soup = BeautifulSoup(‘pdata/p’,’html.parser’) 测试代码 (二)Beautiful Soup 库解析器 Beautiful Soup 类的基本元素 测试代码 (三)用bs4库遍历HTML 1、HTML基本格式 2、标签数的下行遍历 (1)head标签 (2)body标签 (3)遍历儿子节点 3、标签树的上行遍历 测试代码 4、标签树的平行遍历 平行遍历发生在同一个父节点下 测试代码 (四)bs4库的HTML格式化和编码 bs4库将任何读入的HTML代码和字符串转换为utf-8编码 ​ ​
  • 热度 1
    2017-11-8 13:47
    755 次阅读|
    0 个评论
    (一)爬取京东商品信息 (二)爬取亚马逊商品信息 (三)网络图片的爬取和存储 (四)百度360搜索关键字提交 搜索引擎关键词提交接口: 百度: http://www.baidu.com/s?wd=keyword 360: http://www.so.com/s?q=keyword (五)IP地址归属地自动查询 ​ ​
  • 2017-11-7 13:50
    503 次阅读|
    0 个评论
    1、Requests库介绍 Requests 库是 Python 的第三方库,它也是目前公认的爬取网页的最好的第三方库。它的使用比较简洁,甚至用一行代码就可以获取相关的资源,更多的关于 Requests 库的信息可以在 http://www.python-requests.org 看到。 2、测试requests库 状态码是200,说明访问成功 更改它的编码,然后输出网页内容 requests库的常用方法 3、requests库的get方法 获得一个网页的最简单的一行代码就是: r = requests.get(url) 通过 get 和 url 构造了一个向服务器请求资源的 Request 对象,返回一个包含服务器资源的 Response 对象。 requests.get(url,params=None,**kwargs) url: 拟获取页面的 url 链接; params: url 中的额外参数,字典或字节流格式,可选; **kwargs: 12 个控制访问的参数; 4、Response对象 Response 属性 r.encoding: 如果 header 中不存在 charset, 则认为编码为 ISO-8859-1 5、requests库的异常 r.raise_for_status() : 如果不是 200 ,产生异常 requests.HTTPError 6、爬取网页的通用代码框架 import requests def getHTMLText(url): try: r = requests.get(url,timeout=30) r.raise_for_status() #如果状态不是200,引发HTTPError异常 r.encoding = r.apparent_encoding return r.text except: return "发生了异常" if __name__=="__main__": url = "http://www.baidu.com" print(getHTMLText(url)) 7、HTTP协议 HTTP,Hypertext Transfer Protocol, 超文本传输协议。它是一个基于请求与响应模式的、无状态的应用层协议。它采用 URL 作为定位网络资源的标识。 URL 格式 http://host host: 合法的主机域名或者 IP 地址; port: 默认为 80 ; path: 请求资源的路径; HTTP对资源的操作 HTTP协议与requests库的功能 requests库的head()方法 requests库的post()方法 8、requests库的主要方法 (1) requests.request(method,url,**kwargs) method: 请求方式,对应 get/put/post 等 7 种 **kwargs: 控制访问参数,共 13 个 (2)**kwargs(13个可选参数 ​ ​ ) params: 字典或者字节序列,作为参数增加到 url data: 字典、字节序列或文件对象 json ; JSON 格式的数据,作为 Requests 的内容 headers: 字典, HTTP 定制头 hd = {'user-agent':'Chrome/10'} r = requests.request('POST','http://python123.io/ws',header=hd) cookies: 字典或 CookieJar,Request 中的 cookie auth: 元祖,支持 HTTP 认证功能 file: 字典类型,传输文件 fs = {'file':open('data.xls','rb')} r = requests.request('POST','http://python123.io/ws',files=fs) timeout: 设定超时时间 proxies: 字典类型,设定访问代理服务器,可以增加登录认证 allow_redirects: True/False, 默认为 True, 重定向开关; stream: True/False, 默认为 True, 获取内容立即下载开关; verify: True/False, 默认为 True, 认证 SSL 证书开关; cert: 本地 SSL 证书路径
  • 热度 1
    2017-10-22 09:33
    664 次阅读|
    0 个评论
           这次要爬取的信息取自于IMDB电影排行榜,网址为: http://www.imdb.cn/imdb250/1       首先我们先简单获取一下电影的名字,为了定位html的各种元素,给谷歌浏览器装一个 XPath Helper,在工具栏打开它,按住shift 键,把鼠标移动到网页上的你要获取的元素上,就可以获得它的位置信息。       1、下面我们先尝试获取电影标题的位置 具体代码如下: from lxml import html x = html.parse('http://www.imdb.cn/imdb250/1') titles = x.xpath(//div /p /text()) print(we got %s titles % len(titles)) for title in titles:        print(title) 输出结果: we got 30 titles 肖申克的救赎 教父 教父:II 低俗小说 黄金三镖客 蝙蝠侠前传2:黑暗骑士 十二怒汉 辛德勒名单 指环王:王者归来 搏击俱乐部 星球大战Ⅴ:帝国反击战 指环王:护戒使者 飞越疯人院 盗梦空间 好家伙 星球大战IV:新希望 七武士 阿甘正传 黑客帝国 指环王:双塔奇兵 上帝之城 七宗罪 沉默的羔羊 西部往事 卡萨布兰卡 非常嫌疑犯 夺宝奇兵 后窗 美好人生 惊魂记 2、接下来我们获取电影的打分 先定位分数的位置信息 具体代码如下 scores = x.xpath(//div /span/i/text()) for score in scores:      print(score)   输出结果如下: 9.3 9.2 9.1 9.0 9.0 9.0 8.9 8.9 8.9 8.9 8.8 8.8 8.8 8.8 8.8 8.8 8.8 8.7 8.7 8.7 8.7 8.7 8.7 8.7 8.7 8.7 8.7 8.7 8.7 8.6 3、接下来用一个循环将电影的配图的位置,电影标题,导演信息,得分打印出来 具体代码如下: groups = x.xpath(//div ) for group in groups:       print(''.join(group.xpath(.//div /img/@src)))       print(''.join(group.xpath(.//div /p /text())))       print(导演: +''.join(group.xpath(.//div /p /span/text())))       print(得分: +''.join(group.xpath(.//div /span/i/text()))) 输出结果如下: 肖申克的救赎 导演: 弗兰克·达拉邦特 Frank Darabont 得分: 9.3 http://posters.imdb.cn/upload/2016/08/26/NGiDp8KS3_1472192982.jpg 教父 导演: 弗朗西斯·福特·科波拉 Francis Ford Coppola 得分: 9.2 http://posters.imdb.cn/upload/1980/07/07/RgYKt147N_1180702311.jpg 教父:II 导演: 弗朗西斯·福特·科波拉 Francis Ford Coppola 得分: 9.1 http://posters.imdb.cn/upload/2003/03/08/1Bhi80Jxx_1177989811.jpg 低俗小说 导演: 昆汀·塔伦蒂诺 Quentin Tarantino 得分: 9.0 http://posters.imdb.cn/upload/1999/03/29/62RLIR9saC_1148432357.jpg 黄金三镖客 导演: 塞尔吉奥·莱昂内 Sergio Leone 得分: 9.0 http://posters.imdb.cn/upload/2003/03/09/H53YRAY3c_1185655314.jpg 蝙蝠侠前传2:黑暗骑士 导演: 未知 得分: 9.0 http://posters.imdb.cn/upload/1981/07/02/IJomLjvZq_1184375616.jpg 十二怒汉 导演: 西德尼·吕美特 Sidney Lumet 得分: 8.9 http://posters.imdb.cn/upload/1993/11/30/3G9eR4Qe0m_1148433560.jpg 辛德勒名单 导演: 斯蒂芬·斯皮尔伯格 Steven Spielberg 得分: 8.9 http://posters.imdb.cn/upload/2003/12/01/A6kPq4OM8m_1148433000.jpg 指环王:王者归来 导演: 彼得·杰克逊 Peter Jackson 得分: 8.9 http://posters.imdb.cn/upload/2016/08/22/zZYTGWIlI_1471858567.jpg 搏击俱乐部 导演: 大卫·芬奇 David Fincher 得分: 8.9 http://posters.imdb.cn/upload/2005/02/25/FvpoLHox7_1261978983.jpg 星球大战Ⅴ:帝国反击战 导演: 伊文·克什纳 Irvin Kershner 得分: 8.8 http://posters.imdb.cn/upload/2001/12/10/0OZLVvKvdo_1148432167.jpg 指环王:护戒使者 导演: 彼得·杰克逊 Peter Jackson 得分: 8.8 http://posters.imdb.cn/upload/1975/11/19/vPcUO8N1JX_1148432618.jpg 飞越疯人院 导演: 米洛斯·福尔曼 Milos Forman 得分: 8.8 http://posters.imdb.cn/upload/2001/03/18/2bDnAdeIN_1261504270.jpg 盗梦空间 导演: 克里斯托弗·诺兰 Christopher Nolan 得分: 8.8 http://posters.imdb.cn/upload/1990/09/12/zr0dECk4VD_1148432487.jpg 好家伙 导演: 马丁·斯科塞斯 Martin Scorsese 得分: 8.8 http://posters.imdb.cn/upload/1977/05/25/qiobjJQrsg_1148433786.jpg 星球大战IV:新希望 导演: 乔治·卢卡斯 George Lucas 得分: 8.8 http://posters.imdb.cn/upload/1993/04/29/SUwvkCYhEY_1148432352.jpg 七武士 导演: 黑泽明 Akira Kurosawa 得分: 8.8 http://posters.imdb.cn/upload/1994/06/23/7yM8yMKOF1_1148432608.jpg 阿甘正传 导演: 罗伯特·泽米基斯 Robert Zemeckis 得分: 8.7 http://posters.imdb.cn/upload/1999/03/31/0bDwLci3Qx_1148433202.jpg 黑客帝国 导演: 安迪·沃卓斯基 Andy Wachowski|拉娜·沃卓斯基 Lana Wachowski 得分: 8.7 http://posters.imdb.cn/upload/2002/12/05/wYy6gEZVON_1148433036.jpg 指环王:双塔奇兵 导演: 彼得·杰克逊 Peter Jackson 得分: 8.7 http://posters.imdb.cn/upload/2002/05/18/gAotRuG7Pm_1148433878.jpg 上帝之城 导演: 费尔南多·梅里尔斯 Fernando Meirelles|卡提亚·路德 Kátia Lund 得分: 8.7 http://posters.imdb.cn/upload/1998/04/03/rYmevemmD_1176897330.jpg 七宗罪 导演: 大卫·芬奇 David Fincher 得分: 8.7 http://posters.imdb.cn/upload/1991/01/30/9pu3UM6c3p_1148432319.jpg 沉默的羔羊 导演: 乔纳森·戴米 Jonathan Demme 得分: 8.7 http://posters.imdb.cn/upload/1999/03/29/lTlZlsNVbn_1148433582.jpg 西部往事 导演: 塞尔吉奥·莱昂内 Sergio Leone 得分: 8.7 http://posters.imdb.cn/upload/2003/03/08/A4h3fojJNs_1148432891.jpg 卡萨布兰卡 导演: 迈克尔·柯蒂兹 Michael Curtiz 得分: 8.7 http://posters.imdb.cn/upload/1995/07/19/PNuDIlc9e3_1148432991.jpg 非常嫌疑犯 导演: 布莱恩·辛格 Bryan Singer 得分: 8.7 http://posters.imdb.cn/upload/1981/06/12/hj0ONIGMQI_1148432293.jpg 夺宝奇兵 导演: 斯蒂芬·斯皮尔伯格 Steven Spielberg 得分: 8.7 http://posters.imdb.cn/upload/1992/05/04/oVAGCyWgmx_1148433997.jpg 后窗 导演: 阿尔弗雷德·希区柯克 Alfred Hitchcock 得分: 8.7 http://posters.imdb.cn/upload/2006/02/20/CTEqb7WpZo_1148432535.jpg 美好人生 导演: 弗兰克·卡普拉 Frank Capra 得分: 8.7 http://posters.imdb.cn/upload/2002/03/13/VEIZwLc3f_1230042901.jpg 惊魂记 导演: 阿尔弗雷德·希区柯克 Alfred Hitchcock 得分: 8.6 4、实现翻页功能 代码如下 from time import sleep from lxml import html titles = /a /@href headline_xpath = //div /p /text() while len(titles) 260 and next_page:     dom = html.parse(next_page)     headlines = dom.xpath(headline_xpath)     print(Get {} titles from url {}.format(len(headlines),next_page))     titles += headlines     next_pages = dom.xpath(next_button_xpath)     if next_pages:              next_page = base_url.format(next_pages )     else:              print(No next button found\n)               next_page = None sleep(3) print(Total %s movies collected,top 25 titles: %len(titles)) for title in titles:           print(title) 输出如下 Get 30 titles from url http://www.imdb.cn/imdb250/1 Get 30 titles from url http://www.imdb.cn/imdb250/2 Get 30 titles from url http://www.imdb.cn/imdb250/3 Get 30 titles from url http://www.imdb.cn/imdb250/4 Get 30 titles from url http://www.imdb.cn/imdb250/5 Get 30 titles from url http://www.imdb.cn/imdb250/6 Get 30 titles from url http://www.imdb.cn/imdb250/7 Get 30 titles from url http://www.imdb.cn/imdb250/8 Get 7 titles from url http://www.imdb.cn/imdb250/9 Get 30 titles from url http://www.imdb.cn/imdb250/1 Total 277 movies collected,top 25 titles: 肖申克的救赎 教父 教父:II 低俗小说 黄金三镖客 蝙蝠侠前传2:黑暗骑士 十二怒汉 辛德勒名单 指环王:王者归来 搏击俱乐部 星球大战Ⅴ:帝国反击战 指环王:护戒使者 飞越疯人院 盗梦空间 好家伙 星球大战IV:新希望 七武士 阿甘正传 黑客帝国 指环王:双塔奇兵 上帝之城 七宗罪 沉默的羔羊 西部往事 卡萨布兰卡 非常嫌疑犯 夺宝奇兵 后窗 美好人生 惊魂记 杀手莱昂 日落大道 美国X档案 现代启示录 终结者2:审判日 拯救大兵瑞恩 记忆碎片 城市之光 奇爱博士 异形 摩登时代 千与千寻 西北偏北 回到未来 美丽人生 钢琴家 闪灵 公民凯恩 无间行者 M就是凶手 光荣之路 双重赔偿 蝙蝠侠:黑暗骑士崛起 异形2 出租车司机 美国丽人 绿里奇迹 角斗士 无法触碰 机器人总动员 他人的生活 玩具总动员3 致命魔术 发条橙 阿拉伯的劳伦斯 天使艾美丽 杀死一只知更鸟 落水狗 从海底出击 狮子王 天堂电影院 星球大战VI:绝地武士归来 碧血金沙 第三个人 美国往事 梦之安魂曲 美丽心灵的永恒阳光 全金属外壳 老男孩 勇敢的心 洛城机密 偷自行车的人 唐人街 雨中曲 幽灵公主 巨蟒与圣杯 大都会 热情似火 罗生门 莫扎特 2001:太空漫游 彗星美人 控方证人 骗中骗 公寓 萤火虫之墓 不可饶恕 夺宝奇兵3:圣战奇兵 愤怒的公牛 桂河大桥 虎胆龙威 蝙蝠侠前传:侠影之谜 用心棒 纳德和西敏:一次别离 无耻混蛋 黄昏双镖客 偷拐抢骗 玩具总动员 大逃亡 史密斯先生到华盛顿 飞屋环游记 帝国的毁灭 码头风云 潘神的迷宫 将军号 第七封印 盗火线 象人 弃儿的故事 马耳他雄鹰 银翼杀手 疤面煞星 野草莓 丽贝卡 老爷车 生之欲 冰血暴 乱 大人物勒布斯基 历劫佳人 淘金记 猎鹿人 铁手卢克 老无所依 一夜风流 赌城风云 恶魔 心灵捕手 第六感 列车上的陌生人 野战排 怪形 大白鲨 罪恶之城 虎豹小霸王 猜火车 杀死比尔:第一卷 绿野仙踪 勇士 愤怒的葡萄 谜一样的双眼 卢旺达饭店 正午 飘 安妮·霍尔 龙猫 海底总动员 V字仇杀队 电话情杀案 美人计 复仇者联盟 驯龙高手 荒野生存 布莱恩的一生 猎人的夜晚 血色将至 电视台风云 终结者 宾虚 百万宝贝 夜长梦多 伴我同行 国王的演讲 黄金时代 四百击 土拨鼠日 十二只猴子 玛丽和马克思 哈尔的移动城堡 炎热的下午 唐尼·达克 人格面具 爱情是狗娘 谍影重重3 甘地传 杀手 美丽心灵 毕业生 黑天鹅 公主新娘 灵欲春宵 八部半 江湖浪子 大路 洛奇 桃色血案 双虎屠龙 贫民窟的百万富翁 驱魔人 夺魂索 以父之名 巴里·林登 日落黄沙 满洲候选人 怪物公司 17号囚房 无间道 楚门的世界 三个白痴 杀人回忆 加勒比海盗:黑珍珠号的诅咒 心中的小星星 罗马假日 潜行者 足迹 芬尼与亚历山大 派的生活 哈利·波特与死亡圣器(下) 侏罗纪公园 荒野大镖客 叶问 星际迷航 焦土之城 欲望号街车 禁闭岛 第九区 霍比特人 美食总动员 怒火青春 雨人 潜水钟与蝴蝶 西线无战事 风之谷 罗斯玛丽的婴儿 美女与野兽 巴比龙 神秘河 哈维 日出之前 忠犬八公的故事 冬去春又来 那一晚 不可触犯 肖申克的救赎 教父 教父:II 低俗小说 黄金三镖客 蝙蝠侠前传2:黑暗骑士 十二怒汉 辛德勒名单 指环王:王者归来 搏击俱乐部 星球大战Ⅴ:帝国反击战 指环王:护戒使者 飞越疯人院 盗梦空间 好家伙 星球大战IV:新希望 七武士 阿甘正传 黑客帝国 指环王:双塔奇兵 上帝之城 七宗罪 沉默的羔羊 西部往事 卡萨布兰卡 非常嫌疑犯 夺宝奇兵 后窗 美好人生 惊魂记 5、保存到文 件 with open('IDMB_hot_movies.txt','wb') as out:     out.write('\n'.join(titles).encode('utf-8'))
广告