Python 请求没有 return 任何东西

Python requests get doesn't return anything

我想请求这个 url 并获取它的信息:

https://search.codal.ir/api/search/v2/q?=&Audited=true&AuditorRef=-1&Category=1&Childs=false&CompanyState=0&CompanyType=-1&Consolidatable=true&IsNotAudited=false&Isic=232007&Length=12&LetterCode=%D9%86-10&LetterType=-1&Mains=true&NotAudited=false&NotConsolidatable=true&PageNumber=1&Publisher=false&Symbol=%D8%B4%D9%BE%D9%86%D8%A7&TracingNo=-1&search=true

这是一个简单的页面,如果您打开它就会注意到。 我使用的代码是:

import requests
req = requests.Session()
link12month = "https://search.codal.ir/api/search/v2/q?&Audited=true&AuditorRef=-1&Category=1&Childs=false&CompanyState=0&CompanyType=-1&Consolidatable=true&IsNotAudited=false&Isic=232007&Length=12&LetterCode=ن-10&LetterType=-1&Mains=true&NotAudited=false&NotConsolidatable=true&PageNumber=1&Publisher=false&Symbol=شپنا&TracingNo=-1&search=true"
response = req.get(link12month, verify=False
                   , headers={'Content-Type': 'application/xml; charset=utf-8'})
print(response.status_code, response.text)

但是 Requests.get 对我来说 return 没有任何意义(不会 return 编辑任何错误,也不会收到任何响应)。我已经收到关于此页面的信息,但硒比申请慢得多,因为我想申请大约 1000 页(相同 url,稍有改动)。

如果有方法,谢谢指导。换个快捷方式requests怎么样(比如可以用scrapy?)如果可以请告诉我

发现问题:

您需要 User-Agent header:

import requests

if __name__ == '__main__':
    req = requests.Session()
    link12month = "https://search.codal.ir/api/search/v2/q?&Audited=true&AuditorRef=-1&Category=1&Childs=false&CompanyState=0&CompanyType=-1&Consolidatable=true&IsNotAudited=false&Isic=232007&Length=12&LetterCode=ن-10&LetterType=-1&Mains=true&NotAudited=false&NotConsolidatable=true&PageNumber=1&Publisher=false&Symbol=شپنا&TracingNo=-1&search=true"
    response = req.get(link12month, headers={'Accept': 'application/xml; charset=utf-8','User-Agent':'foo'})
    print(response.status_code, response.text)

您也可以在这里稍微简化一下代码:

import requests

if __name__ == '__main__':
    link12month = "https://search.codal.ir/api/search/v2/q?&Audited=true&AuditorRef=-1&Category=1&Childs=false&CompanyState=0&CompanyType=-1&Consolidatable=true&IsNotAudited=false&Isic=232007&Length=12&LetterCode=ن-10&LetterType=-1&Mains=true&NotAudited=false&NotConsolidatable=true&PageNumber=1&Publisher=false&Symbol=شپنا&TracingNo=-1&search=true"
    response = requests.get(link12month, headers={'Accept': 'application/xml; charset=utf-8','User-Agent':'foo'})
    print(response.status_code, response.text)

请务必验证您是否也可以。如果你想要 JSON,删除 'Accept' header.

您还可以通过将参数添加为字典来简化 URL,请在此处查看文档以了解 params 参数 https://www.w3schools.com/python/ref_requests_get.asp

1.tried 用 firefox 获取 url,得到有效响应

2.tried直接使用requests库

import requests
uri = "https://search.codal.ir/api/search/v2/q?&Audited=true&AuditorRef=-1&Category=1&Childs=false&CompanyState=0&CompanyType=-1&Consolidatable=true&IsNotAudited=false&Isic=232007&Length=12&LetterCode=ن-10&LetterType=-1&Mains=true&NotAudited=false&NotConsolidatable=true&PageNumber=1&Publisher=false&Symbol=شپنا&TracingNo=-1&search=true"
session = requests.Session()
x = session.get(uri, timeout=2)

结果:超时异常 => 服务器没有响应

3.tried 设置 firefox

使用的 header
import requests
uri = "https://search.codal.ir/api/search/v2/q?&Audited=true&AuditorRef=-1&Category=1&Childs=false&CompanyState=0&CompanyType=-1&Consolidatable=true&IsNotAudited=false&Isic=232007&Length=12&LetterCode=ن-10&LetterType=-1&Mains=true&NotAudited=false&NotConsolidatable=true&PageNumber=1&Publisher=false&Symbol=شپنا&TracingNo=-1&search=true"

session = requests.Session()
session.headers.update({"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0"})
response = session.get(uri, timeout=2)

print(response.content)

结果看起来像一个有效的 xml 响应:

b'<SearchReportListDto xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Codal.Services.Model.Dto.Search"><Letters><CodalLetterHeaderDto><AttachmentUrl>/Reports/Attachment.aspx?LetterSerial=cmjQJt%2bh5QxBpUMcT8rfPA%3d%3d</AttachmentUrl><CompanyName>\xd9\xbe\xd8\xa7\xd9\x84\xd8\xa7\xdb\x8c\xd8\xb4 \xd9\x86\xd9\x81\xd8\xaa \xd8\xa7\xd8\xb5\xd9\x81\xd9\x87\xd8\xa7\xd9\x86</CompanyName><ExcelUrl>https://excel.codal.ir/service/Excel/GetAll/cmjQJt%2bh5QxBpUMcT8rfPA%3d%3d/0</ExcelUrl><HasAttachment>true</HasAttachment><HasHtml>true</HasHtml><HasXbrl>false</HasXbrl><IsEstimate>false</IsEstimate><LetterCode>\xd9\x86-\xdb\xb1\xdb\xb0</LetterCode><PdfUrl>DownloadFile.aspx?hs=cmjQJt%2bh5QxBpUMcT8rfPA%3d%3d&amp;ft=1005&amp;let=6</PdfUrl><PublishDateTime>\xdb\xb1\xdb\xb4\xdb\xb0\xdb\xb0/\xdb\x...