>  Q&A  >  본문

python - 我写的Xpath 为什么爬取不到内容

-- coding:utf-8 --

import lxml,requests,sys
from bs4 import BeautifulSoup
from lxml import etree

reload(sys)
sys.setdefaultencoding("utf-8")

def main():

url = 'https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=%E6%9A%B4%E8%B5%B0%E6%BC%AB%E7%94%BB&pn=0'

req = requests.get(url).content

# soup = BeautifulSoup(req.content,'lxml')
# imgs = soup.find_all('img')

content = etree.HTML(req)
paths = content.xpath('//*[@id="imgid"]/ul/li[1]/a/img/text()')
# for img in imgs:
#
#     print img

# for img in imgs :

print paths

main()

阿神阿神2741일 전770

모든 응답(1)나는 대답할 것이다

  • 天蓬老师

    天蓬老师2017-04-18 10:32:15

    크롤러를 작성할 때 xpath를 사용하여 웹페이지의 소스 코드에 데이터가 있는지 확인합니다. 그렇지 않은 경우에는 비동기적으로 로드된다는 의미입니다

    1. 브라우저에 이 링크를 입력하면 소스 코드를 볼 수 있고, Ctrl+F를 누르면 imgid의 위치를 ​​찾을 수 있습니다

    으아악

    2. 발견

    다음 이미지 목록을 찾을 수 없습니다. 이미지가 js에 의해 로드되었음을 확인할 수 있습니다

    3. 검색

    F12가 네트워크를 살펴봤고(새로고침해서 확인) 비동기 요청으로 로드한 이미지 정보를 찾지 못해 데이터가 html에 있어야 할 줄 알았는데, js에 배치되어 로드 시 처리되었습니다. 이미지

    위 소스코드 보는 방법과 같은 방법으로 objURL 매개변수를 검색해서 실제 URL을 찾아보세요

    으아악

    솔루션

    나머지는 여러분의 몫입니다~ 아래에서 실제 URL을 분석하는 방법을 찾아보세요!

    회신하다
    0
  • 취소회신하다