ngh888 发表于 2020-10-8 16:24:00

xpath抓取返回空列表

用xpath抓数据,在浏览器上显示能抓到,但是到Python里面返回空列表的情况吗
all_url的值是空


import requests
from fake_useragent import UserAgent
from lxml import etree


def get_html(index_url):
    headers={
      "User-Agent":UserAgent().chrome
    }
    resp=requests.get(index_url,headers=headers)
    resp.encoding='gbk'
    if resp.status_code==200:
      return resp.text
    else:
      return None
def parse_index(html):

    e=etree.HTML(html)

    all_url=e.xpath('//div[@class="channel-detail movie-item-title"]/a/@href')
    return ['https://maoyan.com{}'.format(url)for url in all_url]

def main():
    index_url="https://maoyan.com/films"
    html=get_html(index_url)

    moive_url=parse_index(html)
    print(moive_url)


if __name__ == '__main__':
    main()

疾风怪盗 发表于 2020-10-8 16:32:29

浏览器看到的网页源码!= 爬取到的网页数据

你用xpath提取前,先打印看下爬到了什么,有没有数据在里面

ngh888 发表于 2020-10-8 17:02:35

疾风怪盗 发表于 2020-10-8 16:32
浏览器看到的网页源码!= 爬取到的网页数据

你用xpath提取前,先打印看下爬到了什么,有没有数据在里 ...

我已经知道了,有个反爬机制,在请求头里面加个cookie就行了

ngh888 发表于 2020-10-8 17:04:05

有个反爬机制,在请求头里面加个cookie就行了

suchocolate 发表于 2020-10-8 21:53:42

解决了请给 疾风怪盗 最佳
页: [1]
查看完整版本: xpath抓取返回空列表