【Python】批量下载新浪微博某用户的头像相册
来源:互联网 发布:java高级工程师要求 编辑:程序博客网 时间:2024/05/04 01:22
import ChromeCookiesimport requestsimport re,time,osUSER_NAMBER = '1800591743' # 微博ID,如“1955032717”targetDir = 'result\\18-WeiboAnalbum.py\\'+USER_NAMBER #文件保存路径 # 获取保存路径def destFile(path,name=''): if not os.path.isdir(targetDir): os.mkdir(targetDir) pos = path.rindex('/') if name=='': t = os.path.join(targetDir, path[pos+1:]) else: t = os.path.join(targetDir, name) return t# 保存图片def saveImage(imgUrl,name=''): response = requests.get(imgUrl, stream=True) image = response.content imgPath = destFile(imgUrl,name) try: with open(imgPath ,"wb") as jpg: jpg.write(image) print('保存图片成功!%s' % imgPath) return except IOError: print('保存图片成功!%s' % imgUrl) return finally: jpg.close if __name__=='__main__': DOMAIN_NAME = '.weibo.com' cookies = ChromeCookies.get_chrome_cookies(DOMAIN_NAME) album_url = 'http://photo.weibo.com/photos/get_latest?uid='+USER_NAMBER response = requests.get(album_url, cookies=cookies) html_doc = response.text.encode('gbk','ignore').decode('gbk') imgnum = re.search(r'"total":(.*?),', html_doc).group(1) print(imgnum) for n in range(int(imgnum)//20+1): page = n+1 get_url = album_url + '&page='+str(page) response = requests.get(get_url, cookies=cookies) html_doc = response.text.encode('gbk','ignore').decode('gbk') for match in re.finditer(r'"pic_name":"(.*?)"', html_doc,re.S): picture = match.group(1) pictureurl = 'http://ww3.sinaimg.cn/mw690/'+picture saveImage(pictureurl)
其中,ChromeCookies 类是获取 Chrome 浏览器所保存的 Cookie。
import subprocessimport sqlite3import win32cryptimport re,osimport requestsdef get_chrome_cookies(url): DIST_COOKIE_FILENAME = '.\python-chrome-cookies' SOUR_COOKIE_FILENAME = os.path.join(os.environ['LOCALAPPDATA'],r'Google\Chrome\User Data\Default\Cookies') if not os.path.exists(SOUR_COOKIE_FILENAME): raise Exception('Cookies 文件不存在...') subprocess.call(['copy', SOUR_COOKIE_FILENAME, DIST_COOKIE_FILENAME], shell=True) conn = sqlite3.connect(".\python-chrome-cookies") ret_dict = {} for row in conn.execute("SELECT host_key, name, path, value, encrypted_value FROM cookies"): if row[0] != url: continue ret = win32crypt.CryptUnprotectData(row[4], None, None, None, 0) ret_dict[row[1]] = ret[1].decode() conn.close() subprocess.call(['del', '.\python-chrome-cookies'], shell=True) return ret_dict
效果图:
GitHub地址:https://github.com/Jueee/05-WebCrawlers/blob/master/18-WeiboAnalbum.py
0 0
- 【Python】批量下载新浪微博某用户的头像相册
- 批量下载豆瓣相册图片python脚本
- 新浪微博用户头像的图片的引用
- 豆瓣相册批量下载
- 使用Flickr下载器批量下载Flickr的相册
- 163相册批量下载程序
- 用户头像从相机或者相册选择并剪裁
- 登陆新浪微博&批量下载收藏内容[Python脚本实现]
- 命令行下批量下载网易相册
- Android 上传头像的拍照跟相册
- 用python批量获取微信头像
- 相册批量下载新版v4.0发布 支持yupoo相册,
- 爱壁纸的简单批量下载--Python
- 用户头像的背景为头像的模糊头像时候
- python+beautifulsoup/xpath爬取新浪微博某用户的三层关注网络并用gephi可视化
- python自动下载人人所有好友的相册
- Python批量下载图片
- python批量下载壁纸
- SSH中Hibernate的使用总结
- 程序员遇到BUG的解释
- MTK6261D平台重启问题
- Codeforces 611C. New Year and Domino (Good Bye 2015 C题)
- Tomcat 7优化前及优化后的性能对比
- 【Python】批量下载新浪微博某用户的头像相册
- CALayer - 1
- C# 中的 delegate, Lambda 表达式 和 event
- [JAVA][学习笔记]关于java.util.concurrent中 Future类的一些验证
- PHP类中的魔法方法有哪些
- DirectShow Programming 01
- Android 混淆代码总结
- 新浪微博API使用总结
- NSBeZierPath画虚线