网页标签提取
rt比如说:
<p>hello</p>
<p>test</p>
提取p标签里面的内容 本帖最后由 Twilight6 于 2020-5-19 12:02 编辑
正则:
import re
string = """
<p>hello</p>
<p>test</p>
"""
title = re.findall(r'<p>(.+?)</p>',string)
print(title)
bs4:
.text
XPath:
//text() 正则 Twilight6 发表于 2020-5-19 11:54
用正则吗?
你去看看Mike_Python小小,他有换头像了,换成你的了{:10_282:} Twilight6 发表于 2020-5-19 11:54
用正则吗?
bs4,正则都可以 KevinHu 发表于 2020-5-19 11:56
你去看看Mike_Python小小,他有换头像了,换成你的了
我也刚发现,额。。。。。。(⊙﹏⊙){:10_266:} xiaosi4081 发表于 2020-5-19 11:59
我也刚发现
你看看~我编辑了 Twilight6 发表于 2020-5-19 11:59
你看看~我编辑了
TypeError: expected string or bytes-like object 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) from re import findall
string="<p>hello</p>\n<p>test</p>"
(ifor i in findall("<p>.*?</p>",string)) xiaosi4081 发表于 2020-5-19 12:00
TypeError: expected string or bytes-like object
哈哈 我代码里面打错了一个字符 你重新复制运行下 Twilight6 发表于 2020-5-19 12:02
那能不能换成网页抓取 xiaosi4081 发表于 2020-5-19 12:00
TypeError: expected string or bytes-like object
正则的已经修改了 ,漂亮的汤用法在楼下 xiaosi4081 发表于 2020-5-19 12:03
那能不能换成网页抓取
你把网页提取出来的数据参数放到这里即可:
re.findall(r'<p>(.+?)</p>',这里~) xiaosi4081 发表于 2020-5-19 12:03
那能不能换成网页抓取
request = Request(url,headers=headers)
response = urlopen(request)
html = response.read().decode()
re.findall(r'<p>(.+?)</p>',html)
像这样 Twilight6 发表于 2020-5-19 12:09
像这样
header的参数是什么,我是直接用requests 本帖最后由 Twilight6 于 2020-5-19 12:51 编辑
xiaosi4081 发表于 2020-5-19 12:18
header的参数是什么,我是直接用requests
伪装成浏览器 header是浏览器向服务器发送的一个头信息,上面的代码就是发送了浏览器自己的型号。
headers 是浏览器请求头,模仿浏览器访问,后面小甲鱼会教到,你暂时可以删掉这个参数,没填这个的话就是默认是用python型号访问,别人网站一般下就识别出来是爬虫 Twilight6 发表于 2020-5-19 12:39
伪装成浏览器 header是浏览器向服务器发送的一个头信息,上面的代码就是发送了浏览器自己的型号。
hea ...
举个栗子吧 xiaosi4081 发表于 2020-5-19 13:04
举个栗子吧
打开浏览器审核元素,里面的 User-Agent 就是浏览器型号,我们发出请求时候都要带上 User-Agent 信息,发送给服务器,服务器接收信息
如果你用python访问 而且你还没设置 User-Agent 型号信息 ,默认就会把python的型号发给服务器,若网站有反爬机制,你请求了,他直接拒绝你的访问了
页:
[1]
2