小编Adi*_*ore的帖子

从动态网络表中抓取数据

我想从带有动态表的网页中抓取数据。该表包含有关乘坐火车的信息。

这是网站:https : //www.laerm-monitoring.de/zug/?mp=3/

我试图通过一个简单的挂载请求会话来请求数据,但我只得到了基本的 HTML 数据,而没有表格中的数据。

def requests_retry_session(
    retries=3,
    backoff_factor=0.3,
    status_forcelist=(500, 502, 504, 429),
    session=None,
):
    session = session or requests.Session()
    retry = Retry(
        total=retries,
        read=retries,
        connect=retries,
        backoff_factor=backoff_factor,
        status_forcelist=status_forcelist,
    )
    adapter = HTTPAdapter(max_retries=retry)
    session.mount('http://', adapter)
    session.mount('https://', adapter)
    return session 

session = requests_retry_session()
response = session.get('https://www.laerm-monitoring.de/zug/?mp=3/')
response.content
Run Code Online (Sandbox Code Playgroud)

我怎样才能正确地做到这一点?

python web-scraping python-requests

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

为什么 clang-tidy 建议在任何地方添加 [[nodiscard]] ?

我有一个 C++ 项目,clang-tidy建议在[[nodiscard]]任何地方添加。这是一个好习惯吗?我的理解是,[[nodiscard]]只有在忽略返回值对程序可能是致命的时才应该使用。我有一个对象Car,它有一个成员const unsigned int m_ID。吸气剂应该unsigned int getID()[[nodiscard]]吗?clang-tidy 建议如此。

编辑:

当然,我不想忽略吸气剂。但
我的观点是,如果每个返回内容的函数都应该有一个[[nodiscard]],那么该属性[[nodiscard]]无论如何都是多余的。编译器可以简单地检查所有返回内容的函数。

c++ clang clang-tidy

4
推荐指数
2
解决办法
671
查看次数

C++ 向量作为类成员与函数

当我vector在函数中使用如下时,我得到一个变量 D 并且它可以工作。

 vector<int> D(100);
Run Code Online (Sandbox Code Playgroud)

但是,当我决定将其用作类成员时,出现以下奇怪的错误:

error: expected identifier before numeric constant
   99 |     vector<int> D(100);
      |                   ^~~
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么会出现这个特定错误吗?我可以在类中使用数组作为int D[100].

c++ syntax templates

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

为什么编译器在 printf 中将 char 转换为 int?

我正在使用https://cppinsights.io/。以下是代码(默认示例)

#include <cstdio>

int main()
{
    const char arr[10]{2,4,6,8};
    for(const char& c : arr)
    {
      printf("c=%c\n", c);
    }
}
Run Code Online (Sandbox Code Playgroud)

关于cppinsights

C++ Insights 是一个基于 clang 的工具,可以进行源到源的转换。它的目标是让事情可见,这通常是有意地在幕后发生。这是关于编译器为我们做的事情的魔法。或者查看编译器的类。

这是生成的代码,这是编译器如何看待代码

#include <cstdio>

int main()
{
  const char arr[10] = {2, 4, 6, 8, '\0', '\0', '\0', '\0', '\0', '\0'};
  {
    char const (&__range1)[10] = arr;
    const char * __begin1 = __range1;
    const char * __end1 = __range1 + 10L;
    for(; __begin1 != __end1; ++__begin1) {
      const char & c = *__begin1;
      printf("c=%c\n", …
Run Code Online (Sandbox Code Playgroud)

c++ implicit-conversion

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

std::map 作为类成员

我有一个带有成员 std::map<int,int> 的类 X m_lookupTable。我应该使用以下哪项:

Class X {
...
private:
    std::map<int,int> m_lookupTable;
...
}
Run Code Online (Sandbox Code Playgroud)

或在类的析构函数中使用new和分配delete

class X{
private:
   std::map<int,int>* m_lookupTable;
    X() {
        m_lookupTable = new std::map<int,int>();
    }
    
   ~X(){
       delete m_lookupTable;
    }
} 
Run Code Online (Sandbox Code Playgroud)

什么应该是首选方式,为什么?

c++ memory

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