Что {0} означает при нахождении в строке в C#?

Если вы проверяете, вы можете увидеть, что это метод запроса: POST, поэтому использовал другой метод.

Если вы предпочитаете все еще использовать селен, просто дайте мне знать, и я тоже могу попытаться решить эту проблему.

Вам нужно будет взять данные формы и скопировать их в словарь полезной нагрузки. Я не включил все это, потому что это слишком долго, но я включил фрагмент кода в код, чтобы вы могли увидеть формат.

enter image description here

Тогда я просто использовал панд, чтобы взять таблицу с данными.

import requests
import bs4
import pandas as pd


url = 'http://www.asca.ch/Partners.aspx?lang=it'
headers = {'Accept': '*/*',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'en-US,en;q=0.9',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive',
'Content-Length': '55755',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Cookie': '_ga=GA1.2.1140629371.1547917375; _gid=GA1.2.1588639047.1547917375; ASP.NET_SessionId=fmxjh5jxwuq10awmqch1ztjz; __AntiXsrfToken=1d9c575ab1494ab29d2e796e2853eaac; _gat=1',
'Host': 'www.asca.ch',
'Origin': 'http://www.asca.ch',
'Referer': 'http://www.asca.ch/Partners.aspx?lang=it',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
'X-MicrosoftAjax': 'Delta=true',
'X-Requested-With': 'XMLHttpRequest'}


payload = {
'ctl00$RadScriptManagerMaster': 'ctl00$RadScriptManagerMaster|ctl00$MainContent$btn_submit',
'RadStyleSheetManager1_TSSM': ';|636398747139118389:c7e0c438;|636304438089400012:39e38b4c;|636304438089880540:19119943;|636304438090200892:b81c9af7;|636304438090180870:bb009068;|636304438089390001:e78ed9b3;|636325253237635520:dedafabf;|636304438089530155:5961cfc1;|636304438090290991:d08fa23c;|636304438089530155:7fafd27a',
'RadScriptManagerMaster_TSM': ';;System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35:en-US:af7dd01d-1544-48f6-a85d-1285ae370050:ea597d4b:b25378d2;||:460a097d:7a38c288:ace9a216;Telerik.Web.UI, Version=2014.1.403.40, Culture=neutral, PublicKeyToken=121fae78165ba3d4:en-US:ca584452-327f-4858-bf00-fb22c6f6fd75:16e4e7cd:ed16cbdc:f7645509:24ee1bba:f46195d3:2003d0b8:88144a7a:1e771326:aa288e2d:258f1c72:7165f74;',
'ctl00$MainContent$ddl_partners':'' ,
'ctl00_MainContent_ddl_partners_ClientState':'' ,
'ctl00$MainContent$ddl_countries': 'Suisse',
'ctl00_MainContent_ddl_countries_ClientState': '',
'ctl00$MainContent$ddl_cantons': 'GE',

...
...

'__ASYNCPOST': 'true',
'RadAJAXControlID': 'ctl00_MainContent_RadAjaxManager1'
}


r = requests.post(url, headers=headers, data=payload)
soup = r.text

tables = pd.read_html(r.text)
data = tables[0]

Выход:

print (data)
    Unnamed: 0                        ...                                           Discipline(s) thérapeutique(s).1
0          NaN                        ...                          METHODES DE MASSAGELinfodrenaggio manualeMassa...
1          NaN                        ...                                METHODES ENERGETIQUES MANUELLESKinesiologia
2          NaN                        ...                                      METHODES DE MASSAGEMassaggio classico
3          NaN                        ...                          METHODES AYURVEDIQUESHatha YogaMETHODES PSYCHO...
4          NaN                        ...                          METHODES DE MASSAGEMassaggio classicoMETHODES ...
5          NaN                        ...                                            METHODES PRESCRIPTIVESOmeopatia
6          NaN                        ...                          METHODES ENERGETIQUES MANUELLESReikiMETHODES O...
7          NaN                        ...                          METHODES DE MASSAGEMassaggio tradizionale thai...
8          NaN                        ...                          METHODES DE MASSAGEMassaggio classicoMassaggio...
9          NaN                        ...                                      METHODES DE MASSAGEMassaggio empirico
10         NaN                        ...                          METHODES PSYCHOLOGIQUES COMPLEMENTAIRESConsigl...
11         NaN                        ...                          METHODES PRESCRIPTIVESConsigli dietetici (MCO)...
12         NaN                        ...                          METHODES DE MASSAGEMassaggio classicoMassaggio...
13         NaN                        ...                                   METHODES DE MASSAGEMassaggio terapeutico
14         NaN                        ...                          METHODES DE MASSAGELinfodrenaggio manualeMETHO...

[15 rows x 21 columns]

81
задан Peter Mortensen 15 January 2017 в 12:17
поделиться

6 ответов

Вы печатаете отформатированную строку. {0} средства вставить первый параметр после строки формата; в этом случае значение, связанное с ключом "rtf".

Для Строки. Формат, который аналогичен, если бы у Вас было что-то как

//            Format string                    {0}           {1}
String.Format("This {0}.  The value is {1}.",  "is a test",  42 ) 

, Вы создали бы строку, "Это является тестом . Значение 42 ".

можно также использовать выражения и распечатать значения многократно:

//            Format string              {0} {1}  {2}
String.Format("Fib: {0}, {0}, {1}, {2}", 1,  1+1, 1+2) 

уступающая "Выдумка: 1 , 1 , 2 , 3 "

Видят больше в http://msdn.microsoft.com/en-us/library/txafckwd.aspx , который говорит о составном форматировании.

176
ответ дан Daniel LeCheminant 24 November 2019 в 09:27
поделиться

Это - заполнитель в строке.

, Например,

string b = "world.";

Console.WriteLine("Hello {0}", b);

произвел бы этот вывод:

Hello world.

кроме того, у Вас может быть столько заполнителей, сколько Вы желаете. Это также работает над String.Format:

string b = "world.";
string a = String.Format("Hello {0}", b);

Console.WriteLine(a);

И Вы все еще получили бы тот же самый вывод.

25
ответ дан Peter Mortensen 24 November 2019 в 09:27
поделиться

В дополнение к значению Вы хотите распечатать, эти {0} {1}, и т.д., можно указать формат. Например, {0,4} будет значение, которое дополнено к четырем пробелам.

существует много встроенных спецификаторов формата, и кроме того, можно сделать собственное. Поскольку достойное учебное руководство/список видит Строковое Форматирование в C#. Кроме того, существует FAQ здесь .

11
ответ дан Peter Mortensen 24 November 2019 в 09:27
поделиться

Для дальнейшего использования в Visual Studio можно попытаться установить курсор в имя метода (например, WriteLine) и F1 нажатия для поднимания справки на тот контекст. Рытье вокруг должно затем найти Вас String.Format() в этом случае с большой полезной информацией.

Примечание, что выделение выбора (например, двойной щелчок или выполнение выделения путем перетаскивания) и удар F1 только делают поиск строки неконтекста (который имеет тенденцию сосать при нахождении чего-либо полезного), поэтому удостоверьтесь, что Вы просто располагаете курсор где угодно в слове, не выделяя его.

Это также полезно для документации относительно классов и других типов.

6
ответ дан Peter Mortensen 24 November 2019 в 09:27
поделиться

Это - заполнитель для первого параметра, который в Вашем случае оценивает к "wordpad.exe".

, Если бы у Вас был дополнительный параметр, Вы использовали бы {1}, и т.д.

5
ответ дан Peter Mortensen 24 November 2019 в 09:27
поделиться

Это - заполнитель для параметра во многом как %s действия спецификатора формата в printf.

можно начать добавлять дополнительные вещи там для определения формата также, хотя это имеет больше смысла с числовой переменной ( примеры здесь ).

4
ответ дан Peter Mortensen 24 November 2019 в 09:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: