鱼C论坛

 找回密码
 立即注册
查看: 2861|回复: 40

[已解决]废铁

[复制链接]
发表于 2020-7-3 15:54:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 私はり 于 2020-7-6 20:17 编辑

废贴,版主删除
最佳答案
2020-7-4 08:15:21
本帖最后由 Twilight6 于 2020-7-4 08:17 编辑
私はり 发表于 2020-7-3 19:24
能把图片也弄进去吗?




这样即可,你还要安装的库:
PIL 图片处理库:
  1. python -m pip install Pillow -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码

requests 模块:
  1. python -m pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码

lxml 解析器:
  1. python -m pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码

  1. import requests
  2. from tkinter import *
  3. from lxml.etree import HTML
  4. from PIL import Image,ImageTk

  5. # 访问网页,爬取所需要的数据
  6. url = 'https://www.tianqijun.com/techan/doc/3711.html'
  7. headers = {
  8.     'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
  9. }
  10. count=1
  11. request = requests.get(url,headers=headers)
  12. html = HTML(request.text)
  13. content = html.xpath('//div[@class="detailText"]/p/text()')
  14. title = html.xpath('//p/strong/text()')
  15. img_url = html.xpath('//strong/img/@src')

  16. # 下载图片
  17. for i in range(len(img_url)):
  18.     with open(title[i]+'.jpg','wb') as file:
  19.         file.write(requests.get(img_url[i]).content)

  20. root=Tk()
  21. root.title('----文章爬取&图文并茂')

  22. # 设置滚动条
  23. sb = Scrollbar(root)
  24. sb.pack(side=RIGHT,fill=Y)

  25. # 设置文本
  26. text = Text(root,width=100,height=50,font=('SIMHEI',13),yscrollcommand=sb.set)
  27. temp = []
  28. for i in range(0,len(title)*2,2):
  29.     temp.append(Image.open(title[i//2]+'.jpg'))
  30.     temp.append(ImageTk.PhotoImage(temp[i]))
  31.     text.insert(END,content[i//2]+'\n')
  32.     text.tag_add(f'tag{i}','1.0',END)
  33.     text.tag_config(f'tag{i}',justify=CENTER)
  34.     text.image_create(END,image=temp[i+1],align=CENTER)
  35.     text.insert(END,'\n')

  36. text.pack()
  37. sb.config(command=text.yview)

  38. mainloop()
复制代码


效果图片:

(, 下载次数: 0)




小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-7-3 17:09:52 | 显示全部楼层


这样吧:

  1. import requests
  2. from lxml.etree import HTML


  3. url = 'https://www.tianqijun.com/techan/doc/3711.html'
  4. headers = {
  5.     'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
  6. }

  7. request = requests.get(url,headers=headers)
  8. html = HTML(request.text)
  9. text = html.xpath('//div[@class="detailText"]/p/text()')
  10. print('\n'.join(text))
复制代码


运行结果:
  1.   攀枝花的特色水果有攀枝花芒果、攀西大田石榴、米易雪梨、米易早春枇杷、黄草樱桃、红格脐橙、攀西芒果、安石榴。
  2.   攀西大田石榴是四川攀枝花的特色水果,攀枝花有着优越的地理环境,水土保持良好,产区夏季长,四季不明显,旱雨季分明,昼夜温差大,气候干燥,降雨量集中,日照长。所产出的大田石榴果形大、近圆形,果皮黄绿色着片状红晕,萼片宿存、端正,果皮光洁、中厚,果面有棱。
  3.   芒果是攀枝花的特色水果,攀枝花有着优越的地理环境,由于光照强,热量足,相对干旱,有利于芒果生长、开花、结果。所产出的芒果具有纤维少、味甜芳香、质地腻滑、汁多、味甜,质地腻滑,香气浓,略带松香味、营养丰富的独特品质。
  4.   米易雪梨是四川攀枝花的特色水果,有着非常悠久的历史。但在科技不发达的过去,米易的梨大多是山野中自生自长的又酸又涩的火把梨、水扁梨、称砣梨,品质差、产量低。经过科技人员和种梨区群众多年的探索努力,米易梨开始走向优质高产,逐渐扬名四方。
  5.   米易早春枇杷是四川攀枝花的特色水果,米易枇杷果大厚实,果形整齐均匀,果面呈金黄色或橙红色、色泽鲜艳、果皮薄、毛茸多、锈斑少,果肉细腻、软滑爽口、甜味浓厚、汁多鲜美;果肉、果汁中还富含多种维生素、蛋白质、纤维素以及钙、磷、钾、铁等营养物质。
复制代码




小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-3 17:58:16 | 显示全部楼层
图片也要?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-3 19:21:16 From FishC Mobile | 显示全部楼层
青出于蓝 发表于 2020-7-3 17:58
图片也要?

最好是也要图片
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-3 19:21:50 From FishC Mobile | 显示全部楼层
Twilight6 发表于 2020-7-3 17:09
这样吧:



就是那个lxml库下载不好,有没有别的替换
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-3 19:22:56 | 显示全部楼层
私はり 发表于 2020-7-3 19:21
就是那个lxml库下载不好,有没有别的替换



下载不好建议还是去下载把,Xpath 是新人最容易上手的数据提取了,你如果学习爬虫,肯定会下载这个解析器模块的:

  1. python -m pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-3 19:23:36 From FishC Mobile | 显示全部楼层
Twilight6 发表于 2020-7-3 19:22
下载不好就去下载把,Xpath 是新人最容易上手的数据提取了

哦哦,这个不需要用正则表达式么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-3 19:24:28 | 显示全部楼层
私はり 发表于 2020-7-3 19:23
哦哦,这个不需要用正则表达式么

可以用正则,只不过这里用 Xpath 我感觉比较方便
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-3 19:24:59 From FishC Mobile | 显示全部楼层
Twilight6 发表于 2020-7-3 19:22
下载不好建议还是去下载把,Xpath 是新人最容易上手的数据提取了,你如果学习爬虫,肯定会下载这个解 ...

能把图片也弄进去吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-3 20:44:13 | 显示全部楼层
  1. import requests
  2. from lxml.etree import HTML
  3. from urllib.request import *

  4. url = 'https://www.tianqijun.com/techan/doc/3711.html'
  5. headers = {
  6.     'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
  7. }
  8. count=1
  9. request = requests.get(url,headers=headers)
  10. html = HTML(request.text)
  11. text = html.xpath('//div[@class="detailText"]/p/text()')
  12. print('\n'.join(text))

  13. url="http://tqjimg.tianqistatic.com/toutiao/techan/images/201907/16/5056eee5774256bf3e65c99d1d85c456.jpg/tqj_pc"

  14. c=urlopen(url)
  15. c=c.read()

  16. with open("石榴.jpg","wb") as f:
  17.     f.write(c)
  18.     count+=1

  19. url="http://tqjimg.tianqistatic.com/toutiao/techan/images/201907/16/becb00f7ed7ce15d5348dff60aa3ccc3.jpg/tqj_pc"
  20. c=urlopen(url)
  21. c=c.read()

  22. with open("花芒果","wb") as f:
  23.     f.write(c)
  24.     count+=1
  25. url="http://tqjimg.tianqistatic.com/toutiao/techan/images/201907/16/7b5de4c42958bcc8cb18ab3b8e327c28.jpg/tqj_pc"
  26. c=urlopen(url)
  27. c=c.read()

  28. with open("米易雪梨","wb") as f:
  29.     f.write(c)
  30.     count+=1

  31. url="http://tqjimg.tianqistatic.com/toutiao/techan/images/201907/16/bb608a0996765258acc591644e0a5037.jpg/tqj_pc"
  32. with open("米易早春枇杷","wb") as f:
  33.     f.write(c)
  34.     count+=1
复制代码

还需要图形界面把爬取内容以窗口形式展示出来吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-3 20:45:08 | 显示全部楼层
私はり 发表于 2020-7-3 19:24
能把图片也弄进去吗?

楼上写好了哈,如果需要图形界面展示爬取的文本和内容,回复给我说哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-3 22:00:59 From FishC Mobile | 显示全部楼层
青出于蓝 发表于 2020-7-3 20:45
楼上写好了哈,如果需要图形界面展示爬取的文本和内容,回复给我说哈

可以保存在什么上面,然后显示出来吗,可以的话麻烦写一下,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-3 22:16:59 From FishC Mobile | 显示全部楼层
青出于蓝 发表于 2020-7-3 20:44
还需要图形界面把爬取内容以窗口形式展示出来吗

麻烦问下with  open那些东西是什么意思,有什么用处,知识点
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-3 22:20:07 | 显示全部楼层
私はり 发表于 2020-7-3 22:16
麻烦问下with  open那些东西是什么意思,有什么用处,知识点

with语句下载图片
详情请看零基础入门学习———丰富的else语句及简介的with语句
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-3 22:21:22 | 显示全部楼层
私はり 发表于 2020-7-3 22:00
可以保存在什么上面,然后显示出来吗,可以的话麻烦写一下,谢谢

可以哒,稍等
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-3 22:41:15 | 显示全部楼层
  1. import requests
  2. from lxml.etree import HTML
  3. from urllib.request import *
  4. from tkinter import *

  5. url = 'https://www.tianqijun.com/techan/doc/3711.html'
  6. headers = {
  7.     'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
  8. }
  9. count=1
  10. request = requests.get(url,headers=headers)
  11. html = HTML(request.text)
  12. text = html.xpath('//div[@class="detailText"]/p/text()')
  13. nnn='\n'.join(text)

  14. url="http://tqjimg.tianqistatic.com/toutiao/techan/images/201907/16/5056eee5774256bf3e65c99d1d85c456.jpg/tqj_pc"

  15. c=urlopen(url)
  16. c=c.read()

  17. with open("石榴.gif","wb") as f:
  18.     f.write(c)

  19. url="http://tqjimg.tianqistatic.com/toutiao/techan/images/201907/16/becb00f7ed7ce15d5348dff60aa3ccc3.jpg/tqj_pc"
  20. c=urlopen(url)
  21. c=c.read()

  22. with open("花芒果.gif","wb") as f:
  23.     f.write(c)
  24.     count+=1
  25. url="http://tqjimg.tianqistatic.com/toutiao/techan/images/201907/16/7b5de4c42958bcc8cb18ab3b8e327c28.jpg/tqj_pc"
  26. c=urlopen(url)
  27. c=c.read()

  28. with open("米易雪梨.gif","wb") as f:
  29.     f.write(c)
  30.     count+=1

  31. url="http://tqjimg.tianqistatic.com/toutiao/techan/images/201907/16/bb608a0996765258acc591644e0a5037.jpg/tqj_pc"
  32. with open("米易早春枇杷.gif","wb") as f:
  33.     f.write(c)
  34.     count+=1
  35. chuangkou=Tk()
  36. t=Label(chuangkou, text=nnn, fg="green", font=6)
  37. t.pack()
  38. image=PhotoImage(file="石榴.gif")
  39. w=Label(chuangkou, image=image)
  40. w.pack()
  41. image1=PhotoImage(file="花芒果.gif")
  42. w1=Label(chuangkou, image=image1)
  43. w1.pack()
  44. image2=PhotoImage(file="米易雪梨.gif")
  45. w2=Label(chuangkou, image=image2)
  46. w2.pack()
  47. image3=PhotoImage(file="米易早春枇杷.gif")
  48. w4=Label(chuangkou, image=image3)
  49. w4.pack()
  50. mainloop()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-4 06:48:49 | 显示全部楼层
本帖最后由 Twilight6 于 2020-7-4 06:49 编辑
私はり 发表于 2020-7-3 19:24
能把图片也弄进去吗?




图片不能保存为 txt 的,楼上的是用 Gui 界面,而且这个爬取到的图片不兼容 Tkinter ,还要通过 PIL 模块转化才行 插入  Tkinter 中


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-4 07:23:19 | 显示全部楼层
Twilight6 发表于 2020-7-4 06:48
图片不能保存为 txt 的,楼上的是用 Gui 界面,而且这个爬取到的图片不兼容 Tkinter ,还要通过 PI ...

嗯是的,图片后缀不能直接保存gif,需要格式工厂转化一下。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-4 07:27:43 | 显示全部楼层
青出于蓝 发表于 2020-7-4 07:23
嗯是的,图片后缀不能直接保存gif,需要格式工厂转化一下。



和后缀没关系哈,是 Tkinter 打不开,就算是使用 png,jpg也不行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-4 07:31:52 | 显示全部楼层
Twilight6 发表于 2020-7-4 07:27
和后缀没关系,是 Tkinter 打不开,就算是使用 png,jpg也不行

tkinter只能gif,下载的图片后缀名是jpg,所以得用格式工厂转化。
如果直接下载gif图片,tkinter能打开的,之前试验过
昨天太晚了。着急睡觉,代码好多没弄,文本显示不全,等中午有电脑我在调整
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-29 20:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表