小编Uma*_*air的帖子

从字符串中提取美国电话号码

我试图从字符串中提取美国唯一的电话号码.

我浏览了网络/ SO但是没有找到适合我需求的合适解决方案.

说实话,我有2.5年的网络编程经验,但我在RegEX吮吸.

这里只有我写的RegEX (\d{3}+\-\d{3}+\-\d{4}+)

但它只能检测到 589-845-2889

这是我要提取的电话号码.

589-845-2889

(589)-845-2889

589.845.2889

589 845 2889

5898452889

(589) 845 2889
Run Code Online (Sandbox Code Playgroud)

请告诉我如何在单个Regex for PHP中实现这一壮举.

编辑:

如果您认为用户可以输入任何其他格式的美国号码,也请同时提及,并将其包含在RegEX中.

PS:

实际上我正试图刮掉Craiglist,用户可能已经以任何可能的格式发布了他们的电话号码.

php regex

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

等待请求完成-Python Scrapy

我有一个Scrapy Spider,它会抓取一个网站,并且该网站需要刷新令牌才能访问它们。

def get_ad(self, response):
    temp_dict = AppextItem()
    try:
        Selector(response).xpath('//div[@class="messagebox"]').extract()[0]
        print("Captcha found when scraping ID "+ response.meta['id'] + " LINK: "+response.meta['link'])
        self.p_token = ''

        return Request(url = url_, callback=self.get_p_token, method = "GET",priority=1, meta = response.meta)

    except Exception:
        print("Captcha was not found")
Run Code Online (Sandbox Code Playgroud)

我有一种get_p_token刷新令牌并分配给的方法self.p_token

get_p_token 找到验证码后调用,但问题是其他请求继续执行。

我希望如果找到了验证码,请不要执行下一个请求,直到执行get_p_token完成。

我有,priority=1但这无济于事。

这里是蜘蛛的完整代码

PS:

实际上,令牌是传递给每个URL的,这就是为什么我要等到找到新令牌,然后再抓取其余URL。

python screen-scraping scrapy scrapy-spider

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

强制Python Scrapy不对URL进行编码

其中有一些网址[]就像

http://www.website.com/CN.html?value_ids[]=33&value_ids[]=5007
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用Scrapy抓取此URL时,会向此URL发出请求

http://www.website.com/CN.html?value_ids%5B%5D=33&value_ids%5B%5D=5007
Run Code Online (Sandbox Code Playgroud)

如何强制scrapy不要urlenccode我的网址?

python scrapy python-2.7 scrapy-spider

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

如何在 Scrapy Splash 中加载本地 HTML 文件?

我想使用 Scrapy Splash 加载本地 HTML 文件并将其另存为 PNG/JPEG,然后删除该 HTML 文件

script = """
splash:go(args.url)
return splash:png()
"""
resp = requests.post('http://localhost:8050/run', json={
    'lua_source': script,
    'url': 'file://my_file.html'
})
resp.content
Run Code Online (Sandbox Code Playgroud)

它返回我

加载页面失败(协议“”未知)网络错误 #301

我也试过

yield SplashRequest(url=filepath, 
                    callback=self.parse_result,
                    meta={'filepath': filepath},
                    args={
                        'wait': 0.5,
                        'png': 1,
                    },
                    endpoint='render.html',
                )
Run Code Online (Sandbox Code Playgroud)

但我得到

2020-04-23 12:07:41 [scrapy.downloadermiddlewares.retry] 调试:重试 http://localhost:8050/render.html>(失败 1 次):502 错误网关

scrapy scrapy-splash

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

在scrapy刮擦后发送电子邮件

pipeline.py代码

class Examplepipeline(object):

    def __init__(self):
        dispatcher.connect(self.spider_opened, signal=signals.spider_opened)
        dispatcher.connect(self.spider_closed, signal=signals.spider_closed)

    def spider_opened(self, spider):
        log.msg("opened spider  %s at time %s" % (spider.name,datetime.now().strftime('%H-%M-%S')))

    def process_item(self, item, spider):
            log.msg("Processsing item " + item['title'], level=log.DEBUG)


    def spider_closed(self, spider):
        log.msg("closed spider %s at %s" % (spider.name,datetime.now().strftime('%H-%M-%S')))
Run Code Online (Sandbox Code Playgroud)

在上面的蜘蛛代码中,它将显示蜘蛛的开始时间和结束时间,但现在蜘蛛完成后,我想从scrapy收到一封"Scraping已完成"的邮件.是否有可能做到这一点.如果可能,我们可以在spider_closed方法中编写该代码,任何人都可以分享一些关于如何执行此操作的示例代码.

python email scrapy

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

如何在Eclipse C++中使用-std-c ++ 11

我在我的代码中写了这一行

vector<GLfloat> cone1 { 0.0f, 2.4f, -11.0f, /*rotated*/30.0f, -1.5f, 0.0f, 0.0f };
Run Code Online (Sandbox Code Playgroud)

但是错误在C++ 98中出现,变量必须由构造函数初始化而不是{}

我已经搜索了我应该使用-std-c ++ 11的解决方案,但我不知道如何在Eclipse中添加它?

c++ eclipse opengl mingw

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

在Python 2.7中将½解析为0.5

我刮这个链接BeautifulSoup4

我像这样解析页面HTML

page = BeautifulSoup(page.replace('ISO-8859-1', 'utf-8'),"html5lib")
Run Code Online (Sandbox Code Playgroud)

你可以看到像这样的值-4 -115(分隔-)

我希望列表中的两个值,所以我使用这个正则表达式.

value = re.findall(r'[+-]?\d+', value)
Run Code Online (Sandbox Code Playgroud)

它完美无缺,但不是这些值+2½ -102,我只能得到[-102]

为了解决这个问题,我也试过了

value = value.replace("½","0.5")
value = re.findall(r'[+-]?\d+', value)
Run Code Online (Sandbox Code Playgroud)

但这给了我关于编码的错误,说我必须设置我的文件的编码.

我也试过设置encoding=utf-8在文件顶部,但仍然给出相同的错误.

我需要问我如何转换½0.5

python beautifulsoup python-2.7

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

如何在Scrapy中按所需顺序或同步进行爬网?

问题

我正在尝试创建一个蜘蛛,从商店中抓取并抓取每个产品并将结果输出到JSON文件,其中包括进入主页的每个类别以及抓取每个产品(名称和价格),每个产品类别页面包括无限滚动。

我的问题是,每次我在刮擦一类物品的第一页后发出请求时,不是从相同类型的物品中获取下一批物品,而是从下一个类别中获得物品,并且输出最终变得一团糟。

我已经尝试过的

我已经尝试过弄乱设置,将并发请求强制为一个,并为每个请求设置不同的优先级。

我发现了有关异步爬网的信息,但是我不知道如何按顺序创建请求。

import scrapy
from scrapper_pccom.items import ScrapperPccomItem

class PccomSpider(scrapy.Spider):
    name = 'pccom'
    allowed_domains = ['pccomponentes.com']
    start_urls = ['https://www.pccomponentes.com/componentes']

    #Scrapes links for every category from main page
    def parse(self, response):
        categories = response.xpath('//a[contains(@class,"enlace-secundario")]/@href')
        prio = 20
        for category in categories:
            url = response.urljoin(category.extract())
            yield scrapy.Request(url, self.parse_item_list, priority=prio, cb_kwargs={'prio': prio})
            prio = prio - 1

    #Scrapes products from every page of each category      
    def parse_item_list(self, response, prio):

        products = response.xpath('//article[contains(@class,"tarjeta-articulo")]')
        for product in products:
            item = …
Run Code Online (Sandbox Code Playgroud)

python scrapy

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

如何在MS Visual Studio 2013中创建数据库?

我在互联网上尝试和搜索了很多但没有找到在Visual Studio 2013中创建数据库的方法.

我正在学习c#的基础知识.我在bakend有SQL Server 2008.

c# sql sql-server visual-studio

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

在OpenPyXL中应用样式有问题

我正在尝试设置特定的行和列的样式.

worksheet.cell(row=file_row_number, column=1).value = "Hotel ID"
_cell = worksheet.cell("C1")
_cell.style.font.bold = True
Run Code Online (Sandbox Code Playgroud)

它告诉我错误

TypeError: cannot set bold attribute
Run Code Online (Sandbox Code Playgroud)

以前我在使用XLWT它并且它有非常简单的方法来应用样式,就像你定义style变量一样然后永远write()你可以只传递style变量来在该行/列上应用样式

有没有办法OpenPyXL轻松应用风格,如上所述?

python python-3.x openpyxl

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