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>'
|
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")
|
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")
|
@patch.object(Spider, "_request_with_headers")
|
||||||
def test_player_content_returns_direct_media_url(self, mock_request_with_headers):
|
def test_player_content_returns_direct_media_url(self, mock_request_with_headers):
|
||||||
mock_request_with_headers.return_value = {
|
mock_request_with_headers.return_value = {
|
||||||
|
|||||||
@@ -252,7 +252,10 @@ class Spider(BaseSpider):
|
|||||||
request_headers = dict(self.headers)
|
request_headers = dict(self.headers)
|
||||||
if headers:
|
if headers:
|
||||||
request_headers.update(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 {
|
return {
|
||||||
"body": response.text or "",
|
"body": response.text or "",
|
||||||
"headers": getattr(response, "headers", {}) or {},
|
"headers": getattr(response, "headers", {}) or {},
|
||||||
|
|||||||
Reference in New Issue
Block a user