python抓取贴吧标题和图片代码(Python实现的爬取百度贴吧图片功能完整示例)
类别:脚本大全 浏览量:2525
时间:2021-10-02 01:46:38 python抓取贴吧标题和图片代码
Python实现的爬取百度贴吧图片功能完整示例本文实例讲述了python实现的爬取百度贴吧图片功能。分享给大家供大家参考,具体如下:
|
#coding:utf-8 import requests import urllib2 import urllib ``` from lxml import etree class tieba: def __init__( self ): self .tiebaname = raw_input ( "请输入需要爬取的贴吧:" ) self .beginpage = int ( raw_input ( "请输入爬取的起始页:" )) self .endpage = int ( raw_input ( "请输入爬取的结束页:" )) self .baseurl = "http://tieba.baidu.com" #self.headers = {"user-agent" : "mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko) chrome/59.0.3071.86 safari/537.36"} self .headers = { "user-agent" : "mozilla/5.0 (compatible; msie 9.0; windows nt 6.1 trident/5.0;" } def startwork( self ): """ 发送贴吧每一页的url请求 """ for page in range ( self .beginpage, self .endpage + 1 ): pn = (page - 1 ) * 50 keyword = { "kw" : self .tiebaname, "pn" : pn} kw = urllib.urlencode(keyword) url = self .baseurl + "/f?" + kw #print url html = self .loadrequest(url) self .loadpage(html) def loadrequest( self , url): """ 发送请求,返回响应 url: 发送请求的url地址 """ request = urllib2.request(url, headers = self .headers) #request = urllib2.request(url) response = urllib2.urlopen(request) return response.read() def loadpage( self , html): """ 提取每个帖子的url,并发送请求,获取响应 html: 贴吧每一页的html """ content = etree.html(html) print '------' print content # xpath 返回的所有匹配成功后的结果的列表 #pagelink_list = content.xpath("//li[@class='threadlist_lz clearfix']/li/a[@class='j_th_tit']/@href") pagelink_list = content.xpath( "//li[@class='col2_right j_threadlist_li_right']//li/a/@href" ) pagelink_list = content.xpath( "//li[@class='t_con cleafix']//li/a/@href" ) for link in pagelink_list: print link self .loadimage( self .loadrequest( self .baseurl + link)) def loadimage( self , html): """ 提取帖子里用户发送的图片的url地址 html: 每个帖子的html """ content = etree.html(html) imagelink_list = content.xpath( "//li[@class='p_content ']//img[@class='bde_image']/@src" ) for link in imagelink_list: self .writeimage( self .loadrequest(link), link[ - 10 :]) def writeimage( self , data, filename): """ 将图片的响应数据,写入到本地磁盘里 data: 图片的响应数据 filename: 文件名(图片url的后10位) """ print "正在保存图片...%s" % filename with open (filename, "wb" ) as f: f.write(data) if __name__ = = "__main__" : tieba = tieba() tieba.startwork() |
希望本文所述对大家python程序设计有所帮助。
原文链接:https://blog.csdn.net/xuezhangjun0121/article/details/73719059
您可能感兴趣
- 怎么在当前目录调用python库(Python父目录、子目录的相互调用方法)
- python简易翻译器的运行(Python3.6实现带有简单界面的有道翻译小程序)
- python第三方库的使用方法和作用(Python第三方库face_recognition在windows上的安装过程)
- python写的工具(python调用虹软2.0第三版的具体使用)
- python函数调用传递数组数据(python调用c++传递数组的实例)
- 在python中如何删除指定的行(Python删除n行后的其他行方法)
- python获取网络数据tcp(Python选择网卡发包及接收数据包)
- python2.7连接sqlserver数据库(Python使用sqlalchemy模块连接数据库操作示例)
- python简单代码画图(python+pyqt5实现图片批量缩放工具)
- python算法图解(python实现kmp算法的实例代码)
- pythonflask怎么设置(python flask安装和命令详解)
- python使用aes加密解密(python实现AES和RSA加解密的方法)
- python将一个字符串逆序输出(Python字符串逆序输出的实例讲解)
- python核心编程和python基础教程(从0开始的Python学习014面向对象编程推荐)
- 如何用python爬取最新电影(详解Python爬取并下载《电影天堂》3千多部电影)
- python经典算法(浅谈python常用程序算法)
- 景区游玩,这些安全知识要牢记(这些安全知识要牢记)
- 各地出招烘 热 旅游(各地出招烘热旅游)
- 2021款起亚霸锐到店了 更换车标,竞争宝马X5有戏吗(2021款起亚霸锐到店了)
- 新款起亚霸锐实拍,比普拉多气派,配3.0T V6,引入国内或许能大卖(新款起亚霸锐实拍)
- ()
- 张勇 阿里新任掌门人(阿里新任掌门人)
热门推荐
- mysql如何删除整个表及数据(Mysql删除数据以及数据表的方法实例)
- mac怎么用ftp传文件(Mac自带FTP工具怎么使用 Mac自带FTP工具用法教程)
- vue 排班安排(vue实现钉钉的考勤日历)
- dedecms用什么来调用文章描述(织梦DEDECMS文档关键词频率不能修改的解决方法)
- mysql与oracle体系结构(详解MySQL实时同步到Oracle解决方案)
- h5实现弹出悬浮窗(Html5监听手机摇一摇事件的实现)
- php的模块加载(PHP中的自动加载操作实现方法详解)
- docker启动springboot项目(Docker运行springboot项目的实现)
- sql如何合并多个表中的数据(SQL 列不同的表查询结果合并操作)
- Sql Server常用系统存储过程
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9