鱼C论坛

 找回密码
 立即注册
查看: 1080|回复: 21

[已解决]网页标签提取

[复制链接]
发表于 2020-5-19 11:54:02 | 显示全部楼层 |阅读模式

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

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

x
rt
比如说:
<p>hello</p>
<p>test</p>
提取p标签里面的内容
最佳答案
2020-5-19 12:09:07
xiaosi4081 发表于 2020-5-19 12:03
那能不能换成网页抓取
request = Request(url,headers=headers)
response = urlopen(request)
html = response.read().decode()

re.findall(r'<p>(.+?)</p>',html)
像这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-19 11:54:39 | 显示全部楼层
本帖最后由 Twilight6 于 2020-5-19 12:02 编辑

正则:
import re

string = """

<p>hello</p>
<p>test</p>

"""

title = re.findall(r'<p>(.+?)</p>',string)
print(title)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-19 11:55:00 | 显示全部楼层
bs4:
.text
XPath:
//text()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-19 11:55:02 | 显示全部楼层
正则
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-19 11:56:10 | 显示全部楼层

你去看看Mike_Python小小,他有换头像了,换成你的了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-19 11:56:12 | 显示全部楼层

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

使用道具 举报

 楼主| 发表于 2020-5-19 11:59:21 | 显示全部楼层
KevinHu 发表于 2020-5-19 11:56
你去看看Mike_Python小小,他有换头像了,换成你的了


我也刚发现,额。。。。。。(⊙﹏⊙)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-19 11:59:56 | 显示全部楼层

你看看~我编辑了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-19 12:00:51 | 显示全部楼层

TypeError: expected string or bytes-like object
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-19 12:02:38 | 显示全部楼层
xiaosi4081 发表于 2020-5-19 12:00
TypeError: expected string or bytes-like object
from bs4 import BeautifulSoup

string = """

<p>hello</p>
<p>test</p>

"""

soup = BeautifulSoup(string,'lxml')
print(soup.select('p')[0].text)
print(soup.select('p')[1].text)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-19 12:02:48 | 显示全部楼层
from re import findall

string="<p>hello</p>\n<p>test</p>"

(i[3:-4]for i in findall("<p>.*?</p>",string))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-19 12:03:23 | 显示全部楼层
xiaosi4081 发表于 2020-5-19 12:00
TypeError: expected string or bytes-like object

哈哈 我代码里面打错了一个字符 你重新复制运行下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-19 12:03:59 | 显示全部楼层

那能不能换成网页抓取
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-19 12:04:05 | 显示全部楼层
xiaosi4081 发表于 2020-5-19 12:00
TypeError: expected string or bytes-like object

正则的已经修改了 ,漂亮的汤用法在楼下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-19 12:05:55 | 显示全部楼层
xiaosi4081 发表于 2020-5-19 12:03
那能不能换成网页抓取

你把网页提取出来的数据参数放到这里即可:
re.findall(r'<p>(.+?)</p>',这里~)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-19 12:09:07 | 显示全部楼层    本楼为最佳答案   
xiaosi4081 发表于 2020-5-19 12:03
那能不能换成网页抓取
request = Request(url,headers=headers)
response = urlopen(request)
html = response.read().decode()

re.findall(r'<p>(.+?)</p>',html)
像这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-19 12:18:12 From FishC Mobile | 显示全部楼层
Twilight6 发表于 2020-5-19 12:09
像这样

header的参数是什么,我是直接用requests
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-19 12:39:32 | 显示全部楼层
本帖最后由 Twilight6 于 2020-5-19 12:51 编辑
xiaosi4081 发表于 2020-5-19 12:18
header的参数是什么,我是直接用requests


伪装成浏览器 header是浏览器向服务器发送的一个头信息,上面的代码就是发送了浏览器自己的型号。
headers 是浏览器请求头,模仿浏览器访问,后面小甲鱼会教到,你暂时可以删掉这个参数,没填这个的话就是默认是用python型号访问,别人网站一般下就识别出来是爬虫
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-19 13:04:20 | 显示全部楼层
Twilight6 发表于 2020-5-19 12:39
伪装成浏览器 header是浏览器向服务器发送的一个头信息,上面的代码就是发送了浏览器自己的型号。
hea ...


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

使用道具 举报

发表于 2020-5-19 13:09:26 | 显示全部楼层

浏览器.png
打开浏览器审核元素,里面的 User-Agent 就是浏览器型号,我们发出请求时候都要带上 User-Agent 信息,发送给服务器,服务器接收信息

如果你用python访问 而且你还没设置 User-Agent 型号信息 ,默认就会把python的型号发给服务器,若网站有反爬机制,你请求了,他直接拒绝你的访问了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 04:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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