小编Yoa*_*ANG的帖子

scrapy爬行一组可能包含下一页的链接

我想要:

  1. 提取特定页面的链接
  2. 对于每个链接,我需要该链接的一些内容,以及该链接的"下一页"的内容.
  3. 然后将其导出为json文件(就我的问题而言,我认为并不重要)

目前我的蜘蛛是这样的:

class mySpider(scrapy.Spider):
     ...
    def parse(self, response):
        for url in someurls:
            yield scrapy.Request(url=url, callback=self.parse_next)

    def parse_next(self, response):
        for selector in someselectors:
            yield { 'contents':...,
                     ...}
        nextPage = obtainNextPage()
        if nextPage:
            yield scrapy.Request(url=next_url, callback=self.parse_next)
Run Code Online (Sandbox Code Playgroud)

问题在于蜘蛛处理的一组链接,蜘蛛只能到达那组链接的最后一个链接的"下一页",我通过selenium + chromedriver查看.例如,我有10个链接(从No.1到No.10),我的蜘蛛只能获得No.10链接的下一页.我不知道问题是否发生是因为我的蜘蛛有一些结构性问题.以下是完整代码:

import scrapy
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time


class BaiduSpider(scrapy.Spider):
    name = 'baidu'
    allowed_domains = ['baidu.com']
    start_urls = ['http://tieba.baidu.com'] …
Run Code Online (Sandbox Code Playgroud)

python scrapy web-scraping selenium-webdriver

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

扫描字符串输入会导致失败

我试图通过scanf()在函数中使用输入字符串,但它一直失败,我不知道为什么.

这是我的代码的一部分.

typedef struct node {           
    int id;
    char * name;
    char * address;
    char * group;      
    struct node * next;
} data;

void showG(data * head) {   
    char * n = "";
    int i = 0;
    data * current = head;
    scanf("%s", n);
    printf("The group of %s is\n", n);

    while (current != NULL) {
        if (0 == strcmp(current->group, n)) {
            printf("%d,%s,%s\n", current->id, current->name, current->address);
            i = 1;
        }

        current = current->next;
    }
    if (0 == i) { …
Run Code Online (Sandbox Code Playgroud)

c scanf

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

如何使用正则表达式匹配部分字符串

我想使用正则表达式来匹配给定字符串的一部分.你看,我输入一个字串并与正则表达式匹配,所以,我希望这个名字成为整个字符串的一部分,在中间,开始或结束,甚至整个字符串,所以,如何编写我的正则表达式ç.

scanf("%99s", name);
reti = regcomp(&regex, "\b\w*name\w*\b", 0);
reti = regexec(&regex, "something...", 0, NULL, 0);  
Run Code Online (Sandbox Code Playgroud)

c regex

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

无法创建 gcloud 实例

按照https://course.fast.ai/start_gcp.html这个设置:

export IMAGE_FAMILY="pytorch-latest-gpu" # or "pytorch-latest-cpu" 
for non-GPU instances
export ZONE="us-west2-b" # budget: "us-west1-b"
export INSTANCE_NAME="my-fastai-instance"
export INSTANCE_TYPE="n1-highmem-8" # budget: "n1-highmem-4"

# budget: 'type=nvidia-tesla-k80,count=1'
gcloud compute instances create $INSTANCE_NAME \
        --zone=$ZONE \
        --image-family=$IMAGE_FAMILY \
        --image-project=deeplearning-platform-release \
        --maintenance-policy=TERMINATE \
        --accelerator="type=nvidia-tesla-p100,count=1" \
        --machine-type=$INSTANCE_TYPE \
        --boot-disk-size=200GB \
        --metadata="install-nvidia-driver=True" \
        --preemptible
Run Code Online (Sandbox Code Playgroud)

得到这个错误:

(gcloud.compute.instances.create) Could not fetch resource: - The resource 'projects/xxxxxx/zones/us-west2-b/acceleratorTypes/nvidia-tesla-p100' was not found

任何人?

google-cloud-platform gcloud fast-ai

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