小编Sly*_*per的帖子

Scrapy - 获取 Javascript 变量的值

使用 Scrapy,如何获取 Javascript 变量的值....

这是我的代码...

<script rel="bmc-data">
      var match = 'yes';
      var country = 'uk';
      var tmData = {
        "googleExperimentVariation": "1",
        "pageTitle": "Child Care",
        "page_type": "claimed",
        "company_state": "wyostate",
        "company_city": "mycity"
                   };
</script>
Run Code Online (Sandbox Code Playgroud)

我想检查page_type变量的值。如果它的“已声明”处理页面,否则继续......

我已经看过这个这个

我试过这个...

pattern = r'page_type = "(\w+)",'
response.xpath('//script[@rel="bmc-data"]').re(pattern)
Run Code Online (Sandbox Code Playgroud)

但是当然这不起作用,因为我认为我的正则表达式是错误的。

python scrapy python-2.7

7
推荐指数
2
解决办法
2902
查看次数

如何通过控制台在 DynamoDB 中添加项目?

我希望通过控制台将一些项目添加到 DynamoDB 中。(请参见下面的屏幕截图)。当我单击“保存”按钮时,什么也没有发生。没有新项目被创建。我还选中了 DynamoDB JSON 复选框,将 JSON 转换为 DynamoDB 兼容的 JSON,然后再次单击“保存”按钮,但没有任何反应。有人可以建议我做错了什么吗?也没有错误消息。

在此输入图像描述

amazon-dynamodb

6
推荐指数
1
解决办法
6802
查看次数

BeautifulSoup 嵌套类选择器

我正在为一个项目使用 BeautifulSoup。这是我的 HTML 结构

<div class="container">
<div class="fruits">
    <div class="apple">
        <p>John</p>
        <p>Sam</p>
        <p>Bailey</p>
        <p>Jack</p>
        <ul>
            <li>Sour</li>
            <li>Sweet</li>
            <li>Salty</li>
        </ul>
        <span>Fruits are good</span>
    </div>
    <div class="mango">
        <p>Randy</p>
        <p>James</p>
    </div>
</div>
<div class="apple">
    <p>Bill</p>
    <p>Sean</p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

现在我想在属于“水果”div 类“apple”中获取文本

这是我迄今为止尝试过的......

for node in soup.find_all("div", class_="apple")
Run Code Online (Sandbox Code Playgroud)

它的回归...

  • 账单
  • 肖恩

但我希望它只返回......

  • 约翰
  • 山姆
  • 贝利
  • 杰克
  • 酸的
  • 甜的
  • 水果不错

请注意,我不知道div class="apple"中元素的确切结构。该类中可以有任何类型的不同 HTML 元素。所以选择器必须足够灵活。

这是完整的代码,我需要在其中添加此 BeautifulSoup 代码...

class MySpider(CrawlSpider):
name = 'dknnews'
start_urls = ['http://www.example.com/uat-area/scrapy/all-news-listing/_recache'] …
Run Code Online (Sandbox Code Playgroud)

beautifulsoup

5
推荐指数
1
解决办法
8649
查看次数

Python:读取CSV文件并写入另一个文本文件

我有这个 .csv 文件...

\n\n
    id,first_name,last_name,email,date,opt-in,unique_code\n    1,Jimmy,Reyes,jreyes0@macromedia.com,12/29/2016,FALSE,ER45DH\n    2,Doris,Wood,dwood1@1und1.de,04/22/2016,,MU34T3\n    3,Steven,Miller,smiller2@go.com,07/31/2016,FALSE,G34FGH\n    4,Earl,Parker,eparker3@ucoz.com,01-08-17,FALSE,ASY67J\n    5,Barbara,Cruz,bcruz4@zdnet.com,12/30/2016,FALSE,NHG67P\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果选择加入值为空,则应打印“0”。csv 中的最后一个值应首先打印,然后以特定格式打印所有名称、值对,如下面的预期输出文件所示。

\n\n

我的预期输出

\n\n
ER45DH<tab>"id"="1","first_name"="Jimmy","last_name"="Reyes","email"="jreyes0@macromedia.com","date"="12/29/2016","opt-in"="FALSE"\nMU34T3<tab>"id"="2","first_name"="Doris","last_name"="Wood","email"="dwood1@1und1.de","date"="04/22/2016,"opt-in"="0"\n.......\n
Run Code Online (Sandbox Code Playgroud)\n\n

到目前为止我的代码..

\n\n
import csv\n\nwith open(\'newfilename.csv\', \'w\') as f2:\n    with open(\'mycsvfile.csv\', mode=\'r\') as infile:\n        reader = csv.reader(infile)\n        for i,rows in enumerate(reader):\n            if i == 0:\n               header = rows \n            else:\n                if rows[5] == \'\':\n                   rows[5] = 0;\n                pat = rows[0]+\'\\t\'+\'\'\'"%s"="%%s",\'\'\'*(len(header)-2)+\'\'\'"%s"="%%s"\xe2\x80\x8c\xe2\x80\x8b\\n\'\'\'\n                print pat\n                f2.write(pat % tuple(header[1:]) % tuple(rows[1:]))\n    f2.close()\n
Run Code Online (Sandbox Code Playgroud)\n\n

此代码产生此输出

\n\n
1   "first_name"="Jimmy","last_name"="Reyes","email"="jreyes0@macromedia.com","date"="12/29/2016","opt-in"="FALSE","unique_code"="ASD34R"\xe2\x80\x8c\xe2\x80\x8b\n2   "first_name"="Doris","last_name"="Wood","email"="dwood1@1und1.de","date"="04/22/2016","opt-in"="0","unique_code"="SDS56N"\n
Run Code Online (Sandbox Code Playgroud)\n\n

正如您所看到的,缺少“id”列,并且我希望将 unque_code 放在第一位。

\n\n …

python csv

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

按时对JSON数组进行排序,以12小时格式显示

我有一个类似下面的JSON

[
  {
    "Event_code": "AB-001",
    "Start_time": "11:00 AM",
    "End_time": "3:00 PM",
    "Session_type": "Tour"
  },
  {
    "Event_code": "AB-002",
    "Start_time": "09:30 AM",
    "End_time": "1:00 PM",
    "Session_type": "Course information session"
  },
  {
    "Event_code": "AB-003",
    "Start_time": "9:00 AM",
    "End_time": "3:00 PM",
    "Session_type": "General information session"
  }
]
Run Code Online (Sandbox Code Playgroud)

我想要做的就是在开始时间对数组进行排序...我在这里看到了一个解决方案,但我不知道如何将它调整为我的JSON结构...

有人可以建议......!

javascript jquery

5
推荐指数
1
解决办法
236
查看次数

Scrapy:ValueError('请求网址中缺少方案:%s'%self._url)

我试图从网页上抓取数据.该网页只是2500个URL的项目符号列表.Scrapy获取并转到每个URL并获取一些数据......

这是我的代码

class MySpider(CrawlSpider):
    name = 'dknews'
    start_urls = ['http://www.example.org/uat-area/scrapy/all-news-listing']
    allowed_domains = ['example.org']

    def parse(self, response):
        hxs = Selector(response)
        soup = BeautifulSoup(response.body, 'lxml')
        nf = NewsFields()
        ptype = soup.find_all(attrs={"name":"dkpagetype"})
        ptitle = soup.find_all(attrs={"name":"dkpagetitle"})
        pturl = soup.find_all(attrs={"name":"dkpageurl"})
        ptdate = soup.find_all(attrs={"name":"dkpagedate"})
        ptdesc = soup.find_all(attrs={"name":"dkpagedescription"})
         for node in soup.find_all("div", class_="module_content-panel-sidebar-content"):
           ptbody = ''.join(node.find_all(text=True))  
           ptbody = ' '.join(ptbody.split())
           nf['pagetype'] = ptype[0]['content'].encode('ascii', 'ignore')
           nf['pagetitle'] = ptitle[0]['content'].encode('ascii', 'ignore')
           nf['pageurl'] = pturl[0]['content'].encode('ascii', 'ignore')
           nf['pagedate'] = ptdate[0]['content'].encode('ascii', 'ignore')
           nf['pagedescription'] = ptdesc[0]['content'].encode('ascii', 'ignore')
           nf['bodytext'] = ptbody.encode('ascii', 'ignore')
         yield nf
            for …
Run Code Online (Sandbox Code Playgroud)

python scrapy

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