xiaosi4081 发表于 2020-5-19 11:54:02

网页标签提取

rt
比如说:

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

提取p标签里面的内容

Twilight6 发表于 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)

qiuyouzhi 发表于 2020-5-19 11:55:00

bs4:
.text
XPath:
//text()

KevinHu 发表于 2020-5-19 11:55:02

正则

KevinHu 发表于 2020-5-19 11:56:10

Twilight6 发表于 2020-5-19 11:54
用正则吗?

你去看看Mike_Python小小,他有换头像了,换成你的了{:10_282:}

xiaosi4081 发表于 2020-5-19 11:56:12

Twilight6 发表于 2020-5-19 11:54
用正则吗?

bs4,正则都可以

xiaosi4081 发表于 2020-5-19 11:59:21

KevinHu 发表于 2020-5-19 11:56
你去看看Mike_Python小小,他有换头像了,换成你的了

我也刚发现,额。。。。。。(⊙﹏⊙){:10_266:}

Twilight6 发表于 2020-5-19 11:59:56

xiaosi4081 发表于 2020-5-19 11:59
我也刚发现

你看看~我编辑了

xiaosi4081 发表于 2020-5-19 12:00:51

Twilight6 发表于 2020-5-19 11:59
你看看~我编辑了

TypeError: expected string or bytes-like object

Twilight6 发表于 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').text)
print(soup.select('p').text)

永恒的蓝色梦想 发表于 2020-5-19 12:02:48

from re import findall

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

(ifor i in findall("<p>.*?</p>",string))

Twilight6 发表于 2020-5-19 12:03:23

xiaosi4081 发表于 2020-5-19 12:00
TypeError: expected string or bytes-like object

哈哈 我代码里面打错了一个字符 你重新复制运行下

xiaosi4081 发表于 2020-5-19 12:03:59

Twilight6 发表于 2020-5-19 12:02


那能不能换成网页抓取

Twilight6 发表于 2020-5-19 12:04:05

xiaosi4081 发表于 2020-5-19 12:00
TypeError: expected string or bytes-like object

正则的已经修改了 ,漂亮的汤用法在楼下

Twilight6 发表于 2020-5-19 12:05:55

xiaosi4081 发表于 2020-5-19 12:03
那能不能换成网页抓取

你把网页提取出来的数据参数放到这里即可:
re.findall(r'<p>(.+?)</p>',这里~)

Twilight6 发表于 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)

像这样

xiaosi4081 发表于 2020-5-19 12:18:12

Twilight6 发表于 2020-5-19 12:09
像这样

header的参数是什么,我是直接用requests

Twilight6 发表于 2020-5-19 12:39:32

本帖最后由 Twilight6 于 2020-5-19 12:51 编辑

xiaosi4081 发表于 2020-5-19 12:18
header的参数是什么,我是直接用requests

伪装成浏览器 header是浏览器向服务器发送的一个头信息,上面的代码就是发送了浏览器自己的型号。
headers 是浏览器请求头,模仿浏览器访问,后面小甲鱼会教到,你暂时可以删掉这个参数,没填这个的话就是默认是用python型号访问,别人网站一般下就识别出来是爬虫

xiaosi4081 发表于 2020-5-19 13:04:20

Twilight6 发表于 2020-5-19 12:39
伪装成浏览器 header是浏览器向服务器发送的一个头信息,上面的代码就是发送了浏览器自己的型号。
hea ...

举个栗子吧

Twilight6 发表于 2020-5-19 13:09:26

xiaosi4081 发表于 2020-5-19 13:04
举个栗子吧


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

如果你用python访问 而且你还没设置 User-Agent 型号信息 ,默认就会把python的型号发给服务器,若网站有反爬机制,你请求了,他直接拒绝你的访问了
页: [1] 2
查看完整版本: 网页标签提取