python爬虫获取不到标签内容

链接如下:
http://aaxxy.com/vod-detail-i...
使用requests请求此连接,然后用BeautifulSoup解析获取 dl > dd > a 标签的内容,其中:
图片描述

上图所示的4个 a 标签的内容只能获取到第一个“电影”,后面三个“动作”“喜剧”“剧情”获取不到,输出结果为None:图片描述

使用pyquery解析的话连None都不显示,直接跳过这三个标签了:图片描述

请问为什么会这样?

代码如下:
bs4解析:

web_data = requests.get('http://aaxxy.com/vod-detail-id-10.html ')
web_data.encoding = 'utf-8'
soup = BeautifulSoup(web_data.text,'lxml')
actor = soup.select('dl > dd > a')
print(actor)
for i in actor:
    print(i.string)

pyquery解析:

web_data = requests.get('http://aaxxy.com/vod-detail-id-10.html ')
web_data.encoding = 'utf-8'
pq = pyquery.PyQuery(web_data.text)
print(pq('dl > dd >a').text())
阅读 17.2k
3 个回答

因为取到的html A标签不规整,只有电影这个标签是规整的,其他的A标记都提前闭合了

<a href="/vod-type-id-1-pg-1.html">电影</a>
<a target='_blank' href='/vod-list-id-1-pg-1-order--by--class-59-year--letter--area--lang-.html' />动作</a>
<a target='_blank' href='/vod-list-id-1-pg-1-order--by--class-63-year--letter--area--lang-.html' />喜剧</a>
<a target='_blank' href='/vod-list-id-1-pg-1-order--by--class-83-year--letter--area--lang-.html' />剧情</a>

图片描述

正如楼上所言,经过 BeautifulSoup 处理之后的 html 页面,对闭合产品的错误的影响,
只有string 中只有电影是闭合正确完整的,而“动作”,“喜剧”,“剧情” 的闭合都出问题了,这些 string 都排除在tag 闭合之外了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题