首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python在抓取IMDb网站时出现的问题

Python在抓取IMDb网站时出现的问题
EN

Stack Overflow用户
提问于 2018-09-08 17:51:58
回答 2查看 178关注 0票数 0

我试图使用IMDb在上抓取电影,我可以获得关于所有重要方面的数据,但演员的名字除外。

下面是我正在处理的一个示例URL:

代码语言:javascript
复制
https://www.imdb.com/title/tt0106464/

使用“检查”浏览器功能,我找到了与所有参与者名称相关的XPath,但是当在Python上运行代码时,XPath看起来是无效的(不返回任何内容)。

下面是我使用的代码的一个简单版本:

代码语言:javascript
复制
import requests
from lxml import html

movie_to_scrape = "https://www.imdb.com/title/tt0106464"
timeout_time = 5

IMDb_html = requests.get(movie_to_scrape, timeout=timeout_time)
doc = html.fromstring(IMDb_html.text)
actors = doc.xpath('//table[@class="cast_list"]//tbody//tr//td[not(contains(@class,"primary_photo"))]//a/text()')
print(actors)

我多次尝试更改XPath,试图使它更通用,然后更具体,但它仍然没有返回任何内容。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-08 18:03:37

不要盲目地接受使用inspect element看到的标记结构。

浏览器非常宽松,将尝试修复源中的任何标记问题。

尽管如此,如果您使用view source检查源代码,您可以看到您要绑定到的表没有<tbody>,因为它们是由浏览器插入的。

因此,如果您从这里删除它,//table[@class="cast_list"]//tbody//tr//td[not(contains(@class,"primary_photo"))]//a/text() -> //table[@class="cast_list"]//tr//td[not(contains(@class,"primary_photo"))]//a/text()

您的查询应该有效。

票数 1
EN

Stack Overflow用户

发布于 2018-09-08 18:10:16

从一个简单的xpath开始,比如//td[@class="primary_photo"]

代码语言:javascript
复制
<table class="cast_list">    
  <tr><td colspan="4" class="castlist_label">Cast overview, first billed only:</td></tr>
      <tr class="odd">
          <td class="primary_photo">
<a href="/name/nm0000418/?ref_=tt_cl_i1"
><img height="44" width="32" alt="Danny Glover" title="Danny Glover" src="https://m.media-amazon.com/images/G/01/imdb/images/nopicture/32x44/name-2138558783._CB470041625_.png" class="loadlate hidden " loadlate="https://m.media-amazon.com/images/M/MV5BMTI4ODM2MzQwN15BMl5BanBnXkFtZTcwMjY2OTI5MQ@@._V1_UY44_CR1,0,32,44_AL_.jpg" /></a>          </td>
          <td>

PYTHON:

代码语言:javascript
复制
for photo in doc.xpath('//td[@class="primary_photo"]'):
    print photo
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52237899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档