小编PyR*_*Rar的帖子

scrapy-如何使用正则表达式检索变量值

我想检索的值var modelCode。我做了这样的正则表达式函数,但它根本不起作用。我已经发布了以下页面的结构,请问有人可以帮我吗?

regex2 = re.compile(r'"var modelCode"\s*:\s*(.+?\})', re.DOTALL)
source_json3 = response.xpath("//script[contains(., 'if(pageTrackName == 'product detail' || pageTrackName == 'generic product details')')]/text()").re_first(regex2)
source_json3 = re.sub(r'//[^\n]+', "", source_json3)
Run Code Online (Sandbox Code Playgroud)

页面结构:

var pageTrackName = digitalData.page.pageInfo.pageTrack;
if(pageTrackName == "product detail" || pageTrackName == "generic product details"){ 
   var modelCode = "GT-P5100TSABTU";
   var displayName = "Galaxy Tab 2 (10.1, 3G)".replace(/(<([^>]+)>)/gi, "");
   digitalData.product.model_code = modelCode;
   digitalData.product.displayName = displayName;
   pageName += ":" + modelCode;
Run Code Online (Sandbox Code Playgroud)

}

python regex scrapy

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

仅当条件为真时,Pandas才会替换数据框中列的值

我在替换pandas数据帧中的值时遇到问题.

我想在数据框的列('URL')中搜索它是否包含多个字符串.

如果这是真的,我想替换数据帧中的另一列的值,但是在相同的行上.如果在"URL"列的网址中找到字符串,我想在"模型"列中的同一行写入该字符串,并在"品牌"列上写"三星"

目前,当包含的if条件为真时,它会替换其他列上的所有值,而我不希望这样.

Python代码:

import pandas as pd

dataframe_initial = pd.DataFrame()
dataframe_initial = pd.read_excel('tele2.xlsx')
dataframe_initial['Model'] = ""
dataframe_initial['Brand'] = ""

str1 = 'galaxy-S9'
str2 = 'note-9'
str3 = 'galaxy-a6'
str4 = 'Huawei'
str5 = 'P20'
str6 = 'Apple'
str7 = 'Iphone-X'

for url in dataframe_initial['URL']:
    if str1 in url:
        dataframe_initial['Model'] = str(str1)
        dataframe_initial['Brand'] = str('Samsung')
    if str3 in url:
        dataframe_initial['Model'] = str(str3)
        dataframe_initial['Brand'] = str('Samsung')
    if str2 in url:
        dataframe_initial['Model'] = str(str2)
        dataframe_initial['Brand'] = str('Samsung')
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

使用Selenium和python在DOM中查找第二个元素

我的网页上有两个具有相同类名的元素,并且我正在尝试访问第二个元素,但我无法做到这一点。

跨度看起来像这样:

<span class="REPORTING_DASHBOARDS__link navMenuLabel ">

Dashboards

</span>
Run Code Online (Sandbox Code Playgroud)

我这部分的代码如下所示:

dashboards_button = driver.find_element_by_css_selector(".REPORTING_DASHBOARDS__link.navMenuLabel")[1]                                                          
dashboards_button.click()
Run Code Online (Sandbox Code Playgroud)

python selenium xpath css-selectors selenium-webdriver

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

Python基于逗号分隔的字符向量列的值融化数据框

我目前正在进行一项测试,在该测试中,我具有不同的区域以及一些相关的统计信息,并且用逗号分隔了这些区域中的基因。该列表的数量是可变的,并且可能不包含任何内容("NA")。

如何“融化”此数据框:

 region_id  statistic      genelist
          1        2.5       A, B, C
          2        0.5    B, C, D, E
          3        3.2          <NA>
          4        0.1          E, F
Run Code Online (Sandbox Code Playgroud)

变成这样的东西:

     region_id  statistic gene
           1       2.5    A
           1       2.5    B
           1       2.5    C
           2       0.5    B
           2       0.5    C
           2       0.5    D
           2       0.5    E
           3       3.2 <NA>
           4       0.1    E
           4       0.1    F
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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