博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
爬取抽屉热搜榜文章
阅读量:6715 次
发布时间:2019-06-25

本文共 2624 字,大约阅读时间需要 8 分钟。

import osimport requestsfrom bs4 import BeautifulSoup# 登陆, 模仿用户浏览器r1 = requests.get(    # 要爬取的网页    url='https://dig.chouti.com/',    # 浏览器的信息    headers={        'user-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'    })# 编码# r1.encoding = 'gbk'# 获取第一条cookier1_cookie_dict = r1.cookies.get_dict()# 登陆信息,需要的时候再加上# r2 = requests.post(#     url='https://dig.chouti.com/login',#     # 加入浏览器信息#     headers={
# 'user-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'# },# # 填写账号密码# data={
# 'phone':'861352039****',# 'password':'******',# 'oneMonth':1# },# # 抽屉网还要用第一次那个cookies值# cookies=r1_cookie_dict# )# 去响应体中j解析我们想要的数据soup = BeautifulSoup(r1.text, 'html.parser')# 按照规则找名字: div标签且id=content-list 找到匹配的第一个container = soup.find(name='div', attrs={
'id':'content-list'})# 去container找到所有的class=item的div标签div_list = container.find_all(name='div',attrs={
'class':'item'})# 循环所有的标签for tag in div_list: # 找到class='part2'的所有div标签 articles = tag.find(name='div', attrs={
'class': 'part2'}) # 如果为空就跳过 if not articles: continue # 找到class='summary'的所有span标签 summay = tag.find(name='span', attrs={
'class': 'summary'}) if not summay: continue # 找到class='show-content color-chag'的所有a标签 articles_addr = tag.find(name='a', attrs='show-content color-chag') if not articles_addr: continue print('标题:',articles['share-title']) print('简介:',summay.text) print('文章地址:', articles_addr['href']) print('图片地址:', articles['share-pic']) print('------------------------------------------------') # 下载图片 # 找到图片地址https://img.jandan.net/news/2018/07/D5BA3729EF7F435B8BD5BC7DC8DCDA8C_W550H698.jpg img_addr = articles['share-pic'] # 切割出文件名D5BA3729EF7F435B8BD5BC7DC8DCDA8C_W550H698.jpg file_name = img_addr.rsplit('/', maxsplit=1)[1] # 创建一个文件夹来存要下载的图片 root = "F:/简单项目在这里/pacongfirst/img/" # join连接 拼接一个完整文件名 path_filename = os.path.join('root', file_name) # 或 path_filename = root + file_name try: # 如果文件夹不存在就创建 if not os.path.exists('root'): os.mkdir('root') # 如果文件不存在就下载 if not os.path.exists(path_filename): # 拿到图片 r3 = requests.get( url=img_addr ) with open(path_filename, 'wb') as f: f.write(r3.content) else: print('文件已存在') except: print('爬取失败')

 

转载于:https://www.cnblogs.com/aaronthon/p/9334611.html

你可能感兴趣的文章
Oracle专题12之游标
查看>>
两句话笔记--架构学习之一:并发基础课程(2)
查看>>
LINUX概念与常识
查看>>
SqlServer 添加用户 添加角色 分配权限
查看>>
HBase解决Region Server Compact过程占用大量网络出口带宽的问题
查看>>
Shell编程(基础)
查看>>
CSS3的线性渐变(linear-gradient)
查看>>
环境变量
查看>>
K盘显示文件系统变没,要怎样恢复资料
查看>>
windows常用命令整理
查看>>
使用andbug的monitor命令
查看>>
php-cgi进程占用cpu资源过大原因分析及解决
查看>>
CentOS/RedHat上安装man手册
查看>>
我的友情链接
查看>>
log4j配置
查看>>
去掉Intel集成显卡的桌面右键菜单
查看>>
我的友情链接
查看>>
MediaPlayer播放网络视频
查看>>
面试的时候你感觉受到尊重了吗?
查看>>
LNMP - nginx用户认证
查看>>