小编Hea*_*ode的帖子

Scrapy,在Javascript中抓取数据

scrapy用来屏蔽网站上的数据.但是,我想要的数据不在html本身内部,而是来自javascript.所以,我的问题是:

如何获取此类案例的值(文本值)?

这是我试图筛选的网站:https: //www.mcdonalds.com.sg/locate-us/

我想要的属性:地址,联系方式,营业时间.

如果您在Chrome浏览器中执行"右键单击","查看源代码",您将看到HTML中无法使用此类值.


编辑

Sry paul,我做了你告诉我的事情,找到admin-ajax.php并看到了身体但是,我现在真的被困住了.

如何从json对象中检索值并将其存储到我自己的变量字段中?如果您可以分享如何为公众和刚刚开始scrapy的人分享一个属性,那将是一件好事.

到目前为止,这是我的代码

Items.py

class McDonaldsItem(Item):
name = Field()
address = Field()
postal = Field()
hours = Field()
Run Code Online (Sandbox Code Playgroud)

McDonalds.py

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
import re

from fastfood.items import McDonaldsItem

class McDonaldSpider(BaseSpider):
name = "mcdonalds"
allowed_domains = ["mcdonalds.com.sg"]
start_urls = ["https://www.mcdonalds.com.sg/locate-us/"]

def parse_json(self, response):

    js = json.loads(response.body)
    pprint.pprint(js)
Run Code Online (Sandbox Code Playgroud)

Sry进行长时间编辑,简而言之,我如何将json值存储到我的属性中?例如

***项目['地址'] =*如何检索****

PS,不确定这是否有帮助,但是,我使用cmd行运行这些脚本

scrapy crawl mcdonalds -o McDonalds.json -t json(将我的所有数据保存到json文件中)

我不能强调我的感激之情.我知道问你这个是不合理的,即使你没有时间这个也完全没问题.

python screen-scraping scrapy

22
推荐指数
2
解决办法
2万
查看次数

scrapy,如何在HTML标记元素中分隔文本

包含我的数据的代码:

        <div id="content"><!-- InstanceBeginEditable name="EditRegion3" -->
      <div id="content_div">
    <div class="title" id="content_title_div"><img src="img/banner_outlets.jpg" width="920" height="157" alt="Outlets" /></div>
    <div id="menu_list">
<table border="0" cellpadding="5" cellspacing="5" width="100%">
    <tbody>
        <tr>
            <td valign="top">
                <p>
                    <span class="foodTitle">Century Square</span><br />
                    2 Tampines Central 5<br />
                    #01-44-47 Century Square<br />
                    Singapore 529509</p>
                <p>
                    <br />
                    <strong>Opening Hours:</strong><br />
                    7am to 12am (Sun-Thu &amp;&nbsp;PH)<br />
                    24 Hours (Fri &amp; Sat&nbsp;&amp;</p>
                <p>
                    Eve of PH)<br />
                    Telephone: 6789 0457</p>
            </td>
            <td valign="top">
                <img alt="Century Square" src="/assets/images/outlets/century_sq.jpg" style="width: 260px; height: 140px" /></td> …
Run Code Online (Sandbox Code Playgroud)

python screen-scraping web-crawler scrapy

3
推荐指数
1
解决办法
3771
查看次数

标签 统计

python ×2

scrapy ×2

screen-scraping ×2

web-crawler ×1