哈岁NB 发表于 2023-7-6 11:00:14

爬虫

请问大佬们,爬取这个网站 的信息,它的演员信息一会是演员,一会是主演,用不了正则,该用什么方法呢,这是其中一个详情页https://www.ygdy8.net/html/gndy/jddy/20230629/63860.html

陶远航 发表于 2023-7-6 11:00:30

爬取网站信息时,如果页面的结构复杂或者内容呈现形式不规律,正则表达式可能会变得复杂且难以维护。在这种情况下,可以考虑使用解析库,如BeautifulSoup或lxml,来处理HTML页面。

以下是一个使用BeautifulSoup来解析网页并提取演员信息的示例代码:

python
import requests
from bs4 import BeautifulSoup

# 发送GET请求获取页面内容
url = 'https://www.ygdy8.net/html/gndy/jddy/20230629/63860.html'
response = requests.get(url)
html = response.content

# 创建BeautifulSoup对象
soup = BeautifulSoup(html, 'html.parser')

# 使用CSS选择器提取演员信息
actor_elements = soup.select('div.co_content8 ul table:nth-child(2) tr:nth-child(n+2) td:nth-child(2) a')
actors =

# 输出演员信息
for actor in actors:
    print(actor)


在上述示例中,我们使用了requests库发送GET请求获取网页内容,并使用BeautifulSoup解析HTML页面。通过使用CSS选择器div.co_content8 ul table:nth-child(2) tr:nth-child(n+2) td:nth-child(2) a,我们选择到了演员信息所在的元素。然后,我们遍历选取到的元素,提取出演员的文本内容,并将其存储在actors列表中。

请注意,示例代码中的CSS选择器仅适用于给定的详情页,如果网站结构不稳定或不一致,您可能需要根据不同页面的结构进行相应的调整。

希望这个示例能够帮助到您!如果还有其他疑问,请随时提问。

isdkz 发表于 2023-7-6 11:04:44

怎么用不了正则?你匹配演员或主演不就行了

正则:
(演\s{2}员|主\s{2}演)

哈岁NB 发表于 2023-7-6 11:08:06

isdkz 发表于 2023-7-6 11:04
怎么用不了正则?你匹配演员或主演不就行了

正则:

那请问一下,如果有的页面有豆瓣评分,有的没有,没有的默认一个数值,这种该怎么写呢

哈岁NB 发表于 2023-7-6 11:11:39

isdkz 发表于 2023-7-6 11:04
怎么用不了正则?你匹配演员或主演不就行了

正则:

还有这个该怎么修改成这个形式呢,小括号里的不是会被提取出来吗
actor_pattern = re.compile('◎演  员(.*?)◎', re.S)

isdkz 发表于 2023-7-6 11:14:09

哈岁NB 发表于 2023-7-6 11:11
还有这个该怎么修改成这个形式呢,小括号里的不是会被提取出来吗

用非保存分组就不会被提取出来了

actor_pattern = re.compile('◎(?:演  员|主  演)(.*?)◎', re.S)

哈岁NB 发表于 2023-7-6 11:17:40

isdkz 发表于 2023-7-6 11:14
用非保存分组就不会被提取出来了

好的,感谢感谢

哈岁NB 发表于 2023-7-6 11:18:02

陶远航 发表于 2023-7-6 11:00
爬取网站信息时,如果页面的结构复杂或者内容呈现形式不规律,正则表达式可能会变得复杂且难以维护。在这种 ...

好的,感谢感谢

isdkz 发表于 2023-7-6 11:19:47

本帖最后由 isdkz 于 2023-7-6 11:21 编辑

哈岁NB 发表于 2023-7-6 11:08
那请问一下,如果有的页面有豆瓣评分,有的没有,没有的默认一个数值,这种该怎么写呢

给个例子:

import re
string = "◎豆瓣评分 6.4/10 from 3135 users"
pattern = r'◎豆瓣评分\s+(.*)'
result = match.group(1) if (match := re.search(pattern, string)) else "NULL"

哈岁NB 发表于 2023-7-6 11:20:50

isdkz 发表于 2023-7-6 11:19
给个例子:

好的,感谢感谢

歌者文明清理员 发表于 2023-7-6 12:31:46

你哪来的旧EDGE?!

哈岁NB 发表于 2023-7-6 13:12:03

歌者文明清理员 发表于 2023-7-6 12:31
你哪来的旧EDGE?!

电脑自带的呀,怎么了吗

歌者文明清理员 发表于 2023-7-6 13:14:58

哈岁NB 发表于 2023-7-6 13:12
电脑自带的呀,怎么了吗

旧电脑?

哈岁NB 发表于 2023-7-6 13:19:30

歌者文明清理员 发表于 2023-7-6 13:14
旧电脑?

是的
页: [1]
查看完整版本: 爬虫