Charles_God
2021-11-19 14:39
采纳率: 75%
浏览 76
已结题

Python爬虫只解析了一部分网页?

本想写个爬虫,把电影天堂搜索到的“名侦探柯南”的剧场版爬下来
结果遇到了这样的问题:

import requests
from lxml import etree

url = 'http://s.ygdy8.com/plus/s01.php?keyword=%C3%FB%D5%EC%CC%BD%BF%C2%C4%CF&searchtype=titlekeyword&channeltype=0&orderby=&kwtype=0&pagesize=10&typeid=1&TotalResult=24&PageNo={}'
url = url.format(1)

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.53',
           'Referer':'http://s.ygdy8.com/plus/s01.php?typeid=1&keyword=%BF%C2%C4%CF'}
page_text = requests.get(url,headers=headers).content
html = etree.HTML(page_text)

发现html.xpath('//div[@class="co_content8"]/ul')
有一个元素,这是正常的:[<Element ul at 0x1f76b179900>]
但是html.xpath('//div[@class="co_content8"]/ul/table')
就没有了:[]
利用html.xpath('//text()')查看爬取的内容
只截至到了第一个电影的标题:

['\r\n', '\r\n', '\r\n', '电影天堂-迅雷电影下载 - 名侦探柯南 - 搜索结果', '\r\n', '\r\n ', 'kstatus(); function kstatus(){self.status="喜欢本站使用 Ctrl+D 进行添加收藏,记得分享给您的朋友哦,TA会感谢您,谢谢支持!"; setTimeout("kstatus()",0);} function a() {   alert("亲,请使用 Ctrl+D 进行添加收藏!");}', '\r\n', '\r\n\t\t\t\t', '\r\n                      ', '\r\n\t\t\t\t\t', '\r\n\t\t\t\t\t\r\n\t\t\t', '\r\n\t\t\r\n\t\t', '\r\n\t\t\t\t\t', '\r\n', '最新影片', '\r\n', '经典影片', '\r\n', '国内电影', '\r\n', '欧美电影', '\r\n', '日韩电影', '\r\n', '华语电视', '\r\n', '日韩电视', '\r\n', '欧美电视', '\r\n', '最新综艺', '\r\n', '旧版综艺', '\r\n', '动漫资源', '\r\n', '游戏下载', '\r\n', '高分经典', '\r\n', '收藏本站', '\r\n\t\t', '\r\n\t\t \r\n ', '\r\n\r\n\r\n', '\r\n', '\r\n', '\r\n \r\n', '\r\n \r\n', '\r\n \r\n', '\r\n', '\r\n', '\r\n \r\n\r\n', '\r\n', '当前位置:下载页面  返回', '电影下载首页', '\xa0 \xa0 \xa0 \xa0\xa0\xa0', ' ', '第二下载地址点击进入', '\xa0\xa0\xa0\xa0\xa0', ' ', '手机访问请下载本站app,点击进入!', '\xa0\xa0  \xa0 ', '  ', '\r\n', '\r\n\r\n', '\r\n', '\r\n', '\r\n\r\n\r\n', '\r\n', '\r\n', '手机访问请扫码下载本站app', '\r\n', '\r\n', '\r\n', ' ', '\r\n', '\r\n', '\r\n', '\r\n\r\n', '\r\n', '赞助位置', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n\r\n', '\r\n', '\r\n \r\n', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n', '搜索:', '\r\n', '\r\n', '\r\n', '电影', '\r\n', '电视剧', '\r\n', '综艺', '\r\n', '旧综艺', '\r\n', '游戏', '\r\n', '动漫', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n', ' ', '\xa0\xa0', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n', '\r\n', '电影天堂-迅雷电影下载 >> 搜索 “名侦探柯南” 结果:', '\r\n\r\n', '\r\n', '\r\n', ' \r\n', '\r\n\t', '\r\n', ' \r\n', '\r\n', '2018年悬疑《', '名侦探柯南', ':零的执行人》BD国日双语中字', '\r\n \r\n', '\r\n', ' \r\n', ' \u3000\u3000[', '名侦探柯南', ':零的执行人][BD-mkv.720p.国日双语中字][2018年悬疑] ◎译 名 ', '名侦探柯南', ':零的执行人/', '名侦探柯南', ':零之执行人/', '名侦探柯南', '2018/', '名侦探柯南', '剧场版2018 ◎片 名 名探']

我尝试:

with open('what.txt','wb') as f:
    f.write(page_text)

结果中出现了除《零的执行人》外的其他电影:

<div class="co_content8">
<ul>
<tr> 
<td height="346" valign="top">
    <table border='0' width='100%'>
<tr height='24'> 
<td width='6%' align="center"><img src="/img/file.gif" width="18" height="17"></td>
<td width='55%'><b><a href='/html/gndy/dyzz/20181110/57771.html'>2018年悬疑《<font color='red'>名侦探柯南</font>:零的执行人》BD国日双语中字</a></b></td>
 
</tr>
<tr> 
<td height="56" colspan='3'>   [<font color='red'>名侦探柯南</font>:零的执行人][BD-mkv.720p.国日双语中字][2018年悬疑] ◎译 名 <font color='red'>名侦探柯南</font>:零的执行人/<font color='red'>名侦探柯南</font>:零之执行人/<font color='red'>名侦探柯南</font>2018/<font color='red'>名侦探柯南</font>剧场版2018 ◎片 名 名探偵コナン ゼロの執行人 / Detective Conan: Zero the Enforcer / Meitantei Conan: Zero n<font color='#8F8C89'>(2018-11-10)</font> 
</td>
</tr>
<tr> 
<td height='2' colspan='4' background='/img/writerbg.gif'></td>
</tr>
</table><table border='0' width='100%'>
<tr height='24'> 
<td width='6%' align="center"><img src="/img/file.gif" width="18" height="17"></td>
<td width='55%'><b><a href='/html/gndy/dyzz/20191005/59203.html'>2019年悬疑动画《<font color='red'>名侦探柯南</font>:绀青之拳》BD国日双语中字</a></b></td>
 
</tr>
<tr> 
<td height="56" colspan='3'>   <font color='red'>名侦探柯南</font>:绀青之拳 1080p BD国日双语中字 2019年悬疑动画 ◎译 名 <font color='red'>名侦探柯南</font>:绀青之拳 / Detective Conan: The Fist of Blue Sapphire / <font color='red'>名侦探柯南</font>2019 / <font color='red'>名侦探柯南</font>:深蓝之拳 ◎片 名 名探偵コナン 紺青の拳 ◎年 代 2019 ◎产 地 日本 ◎类 别 动画/悬疑 ◎语<font color='#8F8C89'>(2019-10-05)</font> 
</td>
</tr>
<tr> 
<td height='2' colspan='4' background='/img/writerbg.gif'></td>
</tr>
</table><table border='0' width='100%'>
<tr height='24'> 
<td width='6%' align="center"><img src="/img/file.gif" width="18" height="17"></td>

好像我的xpath语法也没错,为什么会出现这样的情况呢

另外电影天堂page_text = requests.get(url,headers=headers).content.decode()
用utf-8和gbk解码都有不能识别的内容,咋办啊

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题