美丽汤版本:

import requests
from bs4 import BeautifulSoup
import os
from hashlib import md5def get_html(url, headers):html = requests.get(url, headers)return html.textdef parse_html(html):'''解析贴吧首页的帖子href放入列表:param html::return:'''html_soup = BeautifulSoup(html, 'lxml')# 拿到每个帖子的超级连接放到列表a_list = html_soup.select('.j_thread_list .threadlist_title a')# 再从每个a里面拿到每个帖子的href连接地址,形成列表href_list = [a.get('href') for a in a_list]return href_listdef parse_image(img_html):'''解析每个帖子里面的图片src放入列表:param img_html::return:'''img_html_soup = BeautifulSoup(img_html, 'lxml')img_list = img_html_soup.select('.BDE_Image')src_list = [img.get('src') for img in img_list]return src_listdef download_img(src, headers):# 如果没有文件夹创建一个dirname = 'zhaoliying'if not os.path.exists(dirname):os.mkdir(dirname)# 请求下载图片内容Imgcontent = requests.get(src, headers).content# 避免图片重复写文件file = md5(str(Imgcontent).encode('utf-8')).hexdigest()filename = dirname + '\\' + file + '.jpg'if not os.path.exists(filename):with open(filename, 'wb') as f:f.write(Imgcontent)def main():# 第一步先拿到颖宝吧的首页代码url = 'http://tieba.baidu.com/f?kw=%E8%B5%B5%E4%B8%BD%E9%A2%96&pn=0'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36'}html = get_html(url, headers)# print(html)# 第二步拿到当前页里面每个帖子的连接href属性href_list = parse_html(html)print(href_list)# 第三步在循环遍历这个href列表去到每个帖子里面拿图片的srcfor href in href_list:# 遍历拿到href需要拼接为一个完整的url,继续调用获取htmlurl = 'http://tieba.baidu.com' + hrefimg_html = get_html(url, headers)src_list = parse_image(img_html)# 最后遍历这个src把每个src图片下载for src in src_list:download_img(src, headers)if __name__ == '__main__':main()

xpath版本:

import requests
from lxml import etree
import os
from hashlib import md5def get_html(url, headers):html = requests.get(url, headers)return html.textdef parse_html(html):content = etree.HTML(html)href_list = content.xpath('//li[contains(@class,"j_thread_list")]//div[contains(@class,"threadlist_title")]//a/@href')return href_listdef parse_image(img_html):content = etree.HTML(img_html)src_list = content.xpath('//img[@class="BDE_Image"]/@src')return src_listdef download_img(url, headers):img_content = requests.get(url, headers).contentif not os.path.exists("zhaoliying2"):os.mkdir("zhaoliying2")file = md5(str(img_content).encode('utf-8')).hexdigest()filename = "zhaoliying2" + "\\" + file + ".jpg"if not os.path.exists(filename):with open(filename, 'wb') as f:f.write(img_content)def main():pn = 0url = "http://tieba.baidu.com/f?kw=%E8%B5%B5%E4%B8%BD%E9%A2%96&ie=utf-8&pn="+str(pn)headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"}for i in range(10):html = get_html(url, headers)href_list = parse_html(html)for href in href_list:# "http://tieba.baidu.com/p/5787343916"url = "http://tieba.baidu.com" + hrefimg_html = get_html(url, headers)src_list = parse_image(img_html)for src in src_list:download_img(src, headers)pn += 50if __name__ == '__main__':main()

爬虫小案例 爬取百度贴吧赵丽颖图片案例 xpath 美丽汤相关推荐

  1. python爬虫小项目: 爬取百度贴吧帖子

    本文同样是基于静觅系列的python3.x版,具体步骤请前往静觅系列学习 关于encode()与decode()的问题:可以参照xanderzhang 及921800467的专栏 可完成静觅系列相同功 ...

  2. python3爬虫爬取百度贴吧下载图片

    python3爬虫爬取百度贴吧下载图片 学习爬虫时没事做的小练习. 百度对爬虫还是很友好的,在爬取内容方面还是较为容易. 可以方便各位读者去百度贴吧一键下载每个楼主的图片,至于是什么类型的图片,就看你 ...

  3. Python爬虫实战之爬取百度贴吧帖子

    Python爬虫实战之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 对百度贴吧的 ...

  4. python爬取百度贴吧图片库_python爬取百度贴吧的图片2

    今天看了一下beautifulsoup库的用法,把昨天的python爬取百度贴吧的图片1的代码更新成使用beautifulsoup库的函数来实现.用的还是不太熟练,但是感觉比正则表达式写起来容易了一些 ...

  5. 【爬虫 初出茅庐】 爬取并下载想要图片 源码 分析 + 分享

    先上效果图. 如搜取并下载[鬼灭之刃]和[刀剑神域]相关图片 相关过程分析: (PS:因为刚学爬虫没几天,若大佬发现有什么问题欢迎指正) 这里爬取的网站是免费提供图片的51贴图.若光爬取单一或者连续网 ...

  6. python3爬虫之多线程爬取英雄联盟所有皮肤图片

    python3爬虫之多线程爬取英雄联盟所有皮肤图片 线程不要太高,容易出错,大约用时1分钟左右. import requests import json import os import thread ...

  7. 写一个爬虫,可以爬取百度文库内容

    爬取百度文库内容需要使用爬虫技术.以下是一个简单的 Python 爬虫示例: import requestsurl ="https://wenku.baidu.com/view/your_d ...

  8. 百度贴吧界面html程序代码,python爬虫例题:爬取百度贴吧评论区图片和视频

    百度贴吧是全球最大的中文交流平台,你是否跟我一样,有时候看到评论区的图片想下载呢?或者看到一段视频想进行下载呢? 今天,本期Python教程带大家通过搜索关键字来获取评论区的图片和视频. [二.项目目 ...

  9. python爬虫爬取百度图片总结_python爬虫如何批量爬取百度图片

    当我们想要获取百度图片的时候,面对一张张图片,一次次的点击右键下载十分麻烦.python爬虫可以实现批量下载,根据我们下载网站位置.图片位置.图片下载数量.图片下载位置等需求进行批量下载,本文演示py ...

最新文章

  1. java 字符串编程题,JAVA 基础编程练习题7 【程序 7 处理字符串】
  2. 探讨SEO与前端:使用display:none对seo的影响
  3. 为什么 Java 在 25 年之后依旧如此年轻:一个架构师的看法
  4. Java并发编程(01):线程的创建方式,状态周期管理
  5. 树莓派连接usb手机_树莓派03 - 树莓派的VNC连接
  6. .net core——打造自己的 dotnet new 微服务解决方案模板
  7. 使用SplitContainer控件
  8. LightOJ-1253 Misere Nim
  9. BZOJ 小约翰的游戏John 反尼姆博弈
  10. 李山甫 鳴谷 跌足折齒
  11. 【渗透测试】锐捷网络-EWEB网管系统易网关批量GetShell
  12. ag-grid with web api
  13. python使用代理爬虫_python爬虫requests使用代理ip
  14. linux进程与服务管理,linux基础之进程管理与服务
  15. Python基础入门9:字符串1,字符串的驻留
  16. 如何使用客户端软件订阅RSS源2
  17. 在中国,做不成电商SaaS?
  18. 南华大学医院信息系统——门诊管理系统软件工程文档
  19. 项目管理是一个什么样的职位,具体都做些什么事情?
  20. (免费使用)爱招飞IsoFace物联网开发工具 Smart 配合工厂自动化自定开发设计各种组态环境

热门文章

  1. 身份证识别(深度学习)-- 精度商用
  2. 分享-RK3399支持多种屏幕接口如何进行屏幕切换控制
  3. 电脑杀毒后不能上网的解决方法
  4. java小数转二进制_java十进制小数转二进制
  5. 耐心,是投资者最好的美德,顶级投资人都像个“废人”
  6. 想进互联网大厂,该怎么做?
  7. 概率论与数理统计-连续型随机变量基础知识(一)
  8. 自定义View-仿QQ运动步数进度效果
  9. 000.【Web安全】你所使用的随机数真的安全吗?
  10. 从过去的错误中吸取教训_从失败中吸取教训作文500字