鱼C论坛

 找回密码
 立即注册
查看: 2634|回复: 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 图片处理库:
python -m pip install Pillow -i https://pypi.tuna.tsinghua.edu.cn/simple
requests 模块:
python -m pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
lxml 解析器:
python -m pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple
import requests
from tkinter import *
from lxml.etree import HTML
from PIL import Image,ImageTk

# 访问网页,爬取所需要的数据
url = 'https://www.tianqijun.com/techan/doc/3711.html'
headers = {
    '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'
}
count=1
request = requests.get(url,headers=headers)
html = HTML(request.text)
content = html.xpath('//div[@class="detailText"]/p/text()')
title = html.xpath('//p/strong/text()')
img_url = html.xpath('//strong/img/@src')

# 下载图片
for i in range(len(img_url)):
    with open(title[zxsq-anti-bbcode-i]+'.jpg','wb') as file:
        file.write(requests.get(img_url[zxsq-anti-bbcode-i]).content)

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

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

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

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

mainloop()

效果图片:

(, 下载次数: 0)




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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


这样吧:
import requests
from lxml.etree import HTML


url = 'https://www.tianqijun.com/techan/doc/3711.html'
headers = {
    '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'
}

request = requests.get(url,headers=headers)
html = HTML(request.text)
text = html.xpath('//div[@class="detailText"]/p/text()')
print('\n'.join(text))

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



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-3 17:58:16 | 显示全部楼层
图片也要?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

最好是也要图片
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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



就是那个lxml库下载不好,有没有别的替换
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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



下载不好建议还是去下载把,Xpath 是新人最容易上手的数据提取了,你如果学习爬虫,肯定会下载这个解析器模块的:
python -m pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

哦哦,这个不需要用正则表达式么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

可以用正则,只不过这里用 Xpath 我感觉比较方便
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

能把图片也弄进去吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

url = 'https://www.tianqijun.com/techan/doc/3711.html'
headers = {
    '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'
}
count=1
request = requests.get(url,headers=headers)
html = HTML(request.text)
text = html.xpath('//div[@class="detailText"]/p/text()')
print('\n'.join(text))

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

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

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

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

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

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

url="http://tqjimg.tianqistatic.com/toutiao/techan/images/201907/16/bb608a0996765258acc591644e0a5037.jpg/tqj_pc"
with open("米易早春枇杷","wb") as f:
    f.write(c)
    count+=1
还需要图形界面把爬取内容以窗口形式展示出来吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

楼上写好了哈,如果需要图形界面展示爬取的文本和内容,回复给我说哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

可以保存在什么上面,然后显示出来吗,可以的话麻烦写一下,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

麻烦问下with  open那些东西是什么意思,有什么用处,知识点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

with语句下载图片
详情请看零基础入门学习———丰富的else语句及简介的with语句
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

可以哒,稍等
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

url = 'https://www.tianqijun.com/techan/doc/3711.html'
headers = {
    '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'
}
count=1
request = requests.get(url,headers=headers)
html = HTML(request.text)
text = html.xpath('//div[@class="detailText"]/p/text()')
nnn='\n'.join(text)

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

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

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

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

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

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

url="http://tqjimg.tianqistatic.com/toutiao/techan/images/201907/16/bb608a0996765258acc591644e0a5037.jpg/tqj_pc"
with open("米易早春枇杷.gif","wb") as f:
    f.write(c)
    count+=1
chuangkou=Tk()
t=Label(chuangkou, text=nnn, fg="green", font=6)
t.pack()
image=PhotoImage(file="石榴.gif")
w=Label(chuangkou, image=image)
w.pack()
image1=PhotoImage(file="花芒果.gif")
w1=Label(chuangkou, image=image1)
w1.pack()
image2=PhotoImage(file="米易雪梨.gif")
w2=Label(chuangkou, image=image2)
w2.pack()
image3=PhotoImage(file="米易早春枇杷.gif")
w4=Label(chuangkou, image=image3)
w4.pack()
mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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




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


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

嗯是的,图片后缀不能直接保存gif,需要格式工厂转化一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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



和后缀没关系哈,是 Tkinter 打不开,就算是使用 png,jpg也不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 14:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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