fix: use post for juquanquan parse api
This commit is contained in:
@@ -148,6 +148,29 @@ class TestJuQuanQuanSpider(unittest.TestCase):
|
||||
html = '<script>var player_aaaa={"url":"https://video.example/direct.m3u8"};</script>'
|
||||
self.assertEqual(self.spider._extract_player_data(html)["url"], "https://video.example/direct.m3u8")
|
||||
|
||||
@patch.object(Spider, "post")
|
||||
@patch.object(Spider, "fetch")
|
||||
def test_request_with_headers_uses_get_without_data_and_post_with_data(self, mock_fetch, mock_post):
|
||||
class MockResponse:
|
||||
status_code = 200
|
||||
text = "ok"
|
||||
headers = {"set-cookie": ["foo=bar; Path=/"]}
|
||||
|
||||
mock_fetch.return_value = MockResponse()
|
||||
mock_post.return_value = MockResponse()
|
||||
|
||||
get_result = self.spider._request_with_headers("https://www.jqqzx.cc/play/123-1-1.html")
|
||||
post_result = self.spider._request_with_headers(
|
||||
"https://www.jqqzx.cc/jx/api.php",
|
||||
headers={"X-Requested-With": "XMLHttpRequest"},
|
||||
data="vid=demo",
|
||||
)
|
||||
|
||||
self.assertEqual(get_result["body"], "ok")
|
||||
self.assertEqual(post_result["body"], "ok")
|
||||
self.assertEqual(mock_fetch.call_count, 1)
|
||||
self.assertEqual(mock_post.call_count, 1)
|
||||
|
||||
@patch.object(Spider, "_request_with_headers")
|
||||
def test_player_content_returns_direct_media_url(self, mock_request_with_headers):
|
||||
mock_request_with_headers.return_value = {
|
||||
|
||||
@@ -252,7 +252,10 @@ class Spider(BaseSpider):
|
||||
request_headers = dict(self.headers)
|
||||
if headers:
|
||||
request_headers.update(headers)
|
||||
response = self.fetch(target, headers=request_headers, data=data, timeout=10)
|
||||
if data is None:
|
||||
response = self.fetch(target, headers=request_headers, timeout=10)
|
||||
else:
|
||||
response = self.post(target, data=data, headers=request_headers, timeout=10)
|
||||
return {
|
||||
"body": response.text or "",
|
||||
"headers": getattr(response, "headers", {}) or {},
|
||||
|
||||
Reference in New Issue
Block a user