【发布时间】:2021-02-07 18:30:25
【问题描述】:
我正在尝试从用作 urllib 请求参数的链接中获取 JSON 响应。但它给了我一个错误,它不能包含控制字符。
我该如何解决这个问题?
start_url = "https://devbusiness.un.org/solr-sitesearch-output/10//0/ds_field_last_updated/desc?bundle_fq =procurement_notice&sm_vid_Institutions_fq=&sm_vid_Procurement_Type_fq=&sm_vid_Countries_fq=&sm_vid_Sectors_fq= &sm_vid_Languages_fq=English&sm_vid_Notice_Type_fq=&deadline_multifield_fq=&ts_field_project_name_fq=&label_fq=&sm_field_db_ref_no__fq=&sm_field_loan_no__fq=&dm_field_deadlineFrom_fq=&dm_field_deadlineTo_fq =&ds_field_future_posting_dateFrom_fq=&ds_field_future_posting_dateTo_fq=&bm_field_individual_consulting_fq="
source = urllib.request.urlopen(start_url).read()
我得到的错误是:
URL can't contain control characters. '/solr-sitesearch-output/10//0/ds_field_last_updated/desc?bundle_fq =procurement_notice&sm_vid_Institutions_fq=&sm_vid_Procurement_Type_fq=&sm_vid_Countries_fq=&sm_vid_Sectors_fq= &sm_vid_Languages_fq=English&sm_vid_Notice_Type_fq=&deadline_multifield_fq=&ts_field_project_name_fq=&label_fq=&sm_field_db_ref_no__fq=&sm_field_loan_no__fq=&dm_field_deadlineFrom_fq=&dm_field_deadlineTo_fq =&ds_field_future_posting_dateFrom_fq=&ds_field_future_posting_dateTo_fq=&bm_field_individual_consulting_fq=' (found at least ' ')
【问题讨论】:
-
它是一个有效的 URL 吗?它不适用于浏览器,并且有一个奇怪的部分
/10//0/。正常情况下,双斜杠//可以换成单斜杠,那么URL就会给出page not found。 -
你是对的,我提供了错误的 URL,我已修复它。谢谢。小错误总是让人头疼。
-
请确保您对网址进行编码:urlencoder.io/python 实际上在网址中,“”应该是“%20”或“+”
-
看起来像一个不可打印的字符不知何故溜进了 URL。
标签: python web-scraping beautifulsoup urllib