【问题标题】:Python crawler not workingPython爬虫不工作
【发布时间】:2017-10-03 01:19:26
【问题描述】:

我想获取 (http://mokorea.com/yp_business_list_major.php?cat=4) 上的所有商家名称链接

这是我的 Python 代码:

from __future__ import unicode_literals

import requests
from scrapy.selector import Selector

def fetch_page(url):
    '''1. 웹페이지 다운로드'''
    r = requests.get(url)
    return r.text

def upso_list_from_listpage(url):
    '''2.목록 페이`enter code here`지에서 강의 링크등 추출'''
    html = fetch_page(url)
    sel = Selector(text=html)
    upso_list = sel.xpath('//*[@id="List_0"]/div[4]').extract()
    #upso_list = sel.css('.container results .talk-link .media__message a::attr(herf)').extract()
    return upso_list
from pprint import pprint
pprint(upso_list_from_listpage('http://mokorea.com/yp_business_list_major.php?cat=4'))

我尝试在提示符下运行 py 文件,但没有任何显示。

任何 cmets 都会有所帮助。

【问题讨论】:

  • 你能复制那个网站的html结构让我们看看吗?
  • 您可以使用以下在线工具针对您的 HTML 测试您的 xpath 模式:videlibri.sourceforge.net/cgi-bin/xidelcgi
  • 这是AJAX生成的页面,你应该使用Selenium或类似的东西。

标签: python web-scraping request scrapy web-crawler


【解决方案1】:

它是 AJAX 生成的页面。

例如,您可以使用 link 和这样的 xpath 选择器:

sel.xpath('//*[@id="List_0"]/div[4]/span/a/text()').extract()

在这里,您将从第一行获取文本。之后你应该:

  1. 遍历 div id(“List_0”、“List_1”等)以获取其他行。
  2. 分析包含链接中的 GET 参数,更正它们并循环您想要的(特别是 page

【讨论】:

  • 非常感谢。它现在工作。我还有两个问题要问你。您是如何获得该链接的?AJAX 生成的页面是什么意思? Ajax页面很难获取数据吗?或者是其他东西?我是个新手。
  • AJAX 在这种情况下表示此网页上的一堆 javascript。要获得此链接,您应该在任何浏览器中使用开发人员工具并小心谨慎。打开网络选项卡并分析网页内容发出的请求。
猜你喜欢
  • 2017-11-07
  • 1970-01-01
  • 2013-05-10
  • 1970-01-01
  • 2018-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-24
相关资源
最近更新 更多