Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > ปรึกษาครับ GET ข้อมูลมาได้แค่ 1000 Limit ต้องการให้ได้ 2000+ Limit ทำอย่างไร ต้องใช้อะไรมาช่วยครับ ขอแนวทางด้วยครับ



 

ปรึกษาครับ GET ข้อมูลมาได้แค่ 1000 Limit ต้องการให้ได้ 2000+ Limit ทำอย่างไร ต้องใช้อะไรมาช่วยครับ ขอแนวทางด้วยครับ

 



Topic : 136343



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์




Quote:
GET ข้อมูลมาได้แค่ 1000 Limit ต้องการให้ได้ 2000+ Limit ทำอย่างไร ต้องใช้อะไรมาช่วยครับ ขอแนวทางด้วยครับ


Code
import requests import json # url url = "xxxx" api_key ="xxxx" user = "xxxx" headers = { "Content-Type": "application/json", "Authorization": "apikey " + user + ":" + api_key, } response = requests.get(url, verify=False, headers=headers) print(response.json()) print("status_code = " + str(response.status_code))


ผลลัพธ์ครับ
1000 limit



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2021-08-19 16:44:09 By : TeeTs View : 888 Reply : 44
 

 

No. 1



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



สถานะออฟไลน์


จากโค้ดที่ให้มาแค่นั้น ดูแล้วเป็นการเชื่อมต่อระหว่างแอพของเรา กับแอพของคนอื่น เป็น API (ย่อมาจากอะไรใช้ google หาเอา)

ดังนั้นวิธีการเชื่อมต่อกับเขาแล้วกำหนด limit ข้อมูล มันต้องมีเอกสารของเขามาประกอบว่าวิธีการ limit ข้อมูลทำอย่างไร

แต่ในเมื่อไม่มีข้อมูลอะไรเพิ่มเติม เช่น เชื่อมต่อกับที่ไหน, URL อะไร, จะไปหาเอกสารของเขาได้ยังไง ก็ตอบไม่ได้ว่าต้องทำอย่างไร

เพราะแต่ละแห่งจะมีคำสั่ง limit ข้อมูลไม่เหมือนกันบ้าง หรือเหมือนกันบ้าง เดาสุ่มไปก็ไม่รู้อีกกี่วันจะถูก
แล้วก็ดูแล้วไม่ใช่ภาษา PHP แต่แท็กภาษา PHP............

==update======

ดูจากตัวอย่างผลลัพธ์
มันอยู่ที่คำสั่ง limit=xxx ก็ไปแก้ตรงนั้น แต่ไม่มี URL ตัวอย่างที่เรียกใช้ ก็เดาๆไปว่าเอา URL เดิมแล้วเติม &limit=2000








ประวัติการแก้ไข
2021-08-19 17:43:59
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-19 17:42:33 By : mr.v
 


 

No. 2



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.v เมื่อวันที่ 2021-08-19 17:42:33
รายละเอียดของการตอบ ::
ขอบคุณคำแนะนำครับ
ตอบ
อธิบายเพิ่มเติมครับ
1. ใช้ api url เชื่อมต่อกับ web
1.1 ไม่ใช่ app เดี๋ยวเข้าใจผิดกันหมดครัล
1.2 ไม่ใช่การเชื่อมต่อ แอพของเราและแอพของคนอื่น
1.3 แต่คือ การใช้ api url ไปดึงข้อมูลจาก web ของเราเอง จุดประสงค์คือดึงข้อมูล ioc เพื่อทำ test
1.4 api_url limit มาให้แค่ 1000
1.5 สิ่งที่ต้องการแนวทางจากทางเว็บ คือ เมื่อ api_url limit มาให้แค่ 1000 แต่เราต้องการมากกว่า 1000 limit คือ 2000+ (จะใช้วิธีไหนได้บ้างครับ)
1.6 หลังจาก get ioc ได้มากกว่า 2000+ จึงจะทำการ import ioc ชุดนี้เข้าไปใหม่ครับ
1.7 ส่วนที่บอกว่าใส่ &limit=2000 ข้อนี้ที่ผมอธิบายไปคือข้อ 1.5 api_url limit มาให้แค่ 1000 ผมลอง limit เป็น 2000 ก้ไม่ได้ครับ

2. key ใช้ในการ authen คือ เอามาจากทาง web ของเราเองครับ
3. เอกสารไม่ได้บอกในเรื่องของการทำ limit ว่าถ้า ต้องการ limit 2000+ ใช้วิธีนี้ ในเอกสารไม่มีครับ เลยมาถามในเว็บนี้ เผื่อมีคนรู้ครับ
4. ในเอกสารผมทำตามเอกสารครับ code ที่ผมแป๊ะไว้เลยครับ
5. ขอภัยที่ติด tag php แต่ที่จริงใช้ python พอดีผมหา tag python ไม่เจอ ไม่รู้ tag python มีหรือเปล่า ก็ขออภัยด้วยครับ






ประวัติการแก้ไข
2021-08-19 19:05:24
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-19 18:53:26 By : TeeTs
 

 

No. 3



โพสกระทู้ ( 314 )
บทความ ( 0 )



สถานะออฟไลน์


ถ้า api เป็นของคนอื่น ต้องไปดูคู่มือของเขาว่า ถ้าต้องการข้อมูลมากกว่า 1000 ต้องทำอย่างไร
ถ้า api เป็นของเราเอง ต้องไปดูว่า code เขียนไว้อย่างไร

้ถ้าเป็น endpoint แบบมาตราฐาน ไม่ว่าจะเขียนด้วยภาษาใด ก็จะมีคู่มือไว้ให้เสมอครับ โดยเฉพาะ framework ของ python จะมีคู่มือค่อนข้างดีเลยครับ

ดูจากของคุณคือ คุณเขียน python ไปดึงข้อมูลจาก api มาใช้งานก็ต้องไปดูว่า api ที่คุณไปดึงข้อมูลมานั่นแหละ ว่า ต้องส่ง paramiter อะไรไปบ้างเพื่อให้ได้ข้อมูลตามต้องการ


ประวัติการแก้ไข
2021-08-20 11:50:17
2021-08-20 11:54:50
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-20 11:47:09 By : Songkram
 


 

No. 4



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : Songkram เมื่อวันที่ 2021-08-20 11:47:09
รายละเอียดของการตอบ ::
ขอบคุณสำหรับคำแนะนำครับ

ผม : ผมลอง set limit ไป 5000 response มาที่ 1000 limit สาเหตูเพราะ api url limit ให้แค่ 1000 ครับ
แอดมิน : ใช่ๆ limit ได้แค่ 1000

ผม : แล้วต้องใช้วิธีไหนหรอครับ
แอดมิน : ต้อง loop แล้วใช้ parameter next

ผมอยากถามว่า
***ผมต้อง loop ยังไง และใช้ parameter next ยังไง ซึ่งผมไม่เคยทำพวกนี้อยู่แล้วครับ
***พี่ๆคนไหน รู้เรื่อง loop แล้วใช้ parameter next ช่วยแนะนำและขอตัวอย่างด้วยครับ และจะเชื่อมกับ code python ได้ยังไงหรอครับ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-20 16:58:52 By : TeeTs
 


 

No. 5



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



สถานะออฟไลน์


https://www.mulesoft.com/resources/api/what-is-an-api
Quote:
API is the acronym for Application Programming Interface, which is a software intermediary that allows two applications to talk to each other.



https://en.wikipedia.org/wiki/API
Quote:
An application programming interface (API) is a connection between computers or between computer programs.



ครับ api ไม่ใช่แอพ แสดงว่า wiki กับเว็บต่างประเทศเขียนผิด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-20 18:58:10 By : mr.v
 


 

No. 6



โพสกระทู้ ( 4,169 )
บทความ ( 7 )

Hall of Fame 2012

สถานะออฟไลน์


แนะนำได้แค่ หาค่า Start,Offset โดยเขียนเป็น Loop
- ต้องทำ Loop 2 รอบ ถ้าเป็น PHP SQL จะประมาณ $sql = "SELECT * FROM Orders LIMIT 15(OFFSET), 10"; เริ่มต้น OFFSET ที่ 16 โดยต้องการแค่ 10 Record เสร็จแล้วนำค่าได้แถวสุดท้ายไปใส่แทน OFFSET แรก
- เมื่อคุณดึงข้อมูลเยอะขนาดนี้สิ่งที่คุณต้องเรียนรู้เพิ่มเกี่ยวกับพวก javascript หรือ JSON คือ การทำ Promise เพื่อให้ดึง Response ให้เสร็จสิ้นก่อนค่อยทำบรรทัดถัดไป เพราะ javascript จะ Run แต่ละแถวไปเลยโดยที่มันจะไม่รอแถวก่อนหน้าให้เสร็จสิ้น

Promise ที่นิยมตอนนี้คือ async await
Example
async function getData() {
  try{
    let response = await fetch('API_ROUTE');
    return await response.json();
  }catch(err){
    console.error(err);
    // Handle errors here
  }
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-20 21:58:01 By : Genesis™
 


 

No. 7



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


API มี Link Header หรือไม่

ถ้าไม่รู้จัก
https://www.w3.org/Protocols/9707-link-header.html
https://en.wikipedia.org/wiki/List_of_HTTP_header_fields
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-21 00:06:59 By : TheGreatGod_of_Death
 


 

No. 8



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

ตอบความคิดเห็นที่ : 4 เขียนโดย : TeeTs เมื่อวันที่ 2021-08-20 16:58:52
รายละเอียดของการตอบ ::
ตรงนี้เหมือนถามแอดมินมาสองข้อแล้ว ลองถามกลับอีกข้อสิครับว่าจะ loop next ยังไงครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-21 07:52:25 By : {Cyberman}
 


 

No. 9



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : {Cyberman} เมื่อวันที่ 2021-08-21 07:52:25
รายละเอียดของการตอบ ::
loop next น่าจะใช้ URL ที่เขาส่งมาใน screenshot น่ะครับ
ตรงที่เขียน 'next': xxxx ตรงนั้น

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-21 11:04:36 By : mr.v
 


 

No. 10



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : {Cyberman} เมื่อวันที่ 2021-08-21 07:52:25
รายละเอียดของการตอบ ::
แอดมิน : ไม่ได้บอกครับ ได้แต่บอกว่า ใช้ parameter next ทำ loop ต่อๆ
ผม : parameter next คืออะไรครับ
แอดมิน : อยู่ใน response parameter ใช้สำหรับ loop ค่าต่อๆไป และมันจะให้ค่า loop ต่อไปมาเลย และก็เอาค่า url มา query ต่อได้เลย
ผม : ไปหาข้อมูลมา ไม่เจอข้อมูลครับ กับการที่จะหาเกี่ยวกับ parameter next loop ว่าจะทำอย่างไร


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-23 09:46:06 By : TeeTs
 


 
การสื่อสารที่ผิดพลาด

สาว: Dog แปลว่า อะไร
หนุ่ม: มึงอย่ามาหลอกกู
สาว: กูไปหลอกอะไรมึง
หนุ่ม: What ต่างหากที่แปลว่า อะไร
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-23 11:16:37 By : ผ่านมา
 


 

No. 12



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 10 เขียนโดย : TeeTs เมื่อวันที่ 2021-08-23 09:46:06
รายละเอียดของการตอบ ::
ที่ผมถามใน No.7 ได้คำตอบหรือยัง
ตกลงว่ามีหรือไม่มี

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-23 12:10:38 By : TheGreatGod_of_Death
 


 

No. 13



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 12 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-23 12:10:38
รายละเอียดของการตอบ ::
เขาให้ข้อมูลแค่นี้ครับ

Code
response = requests.get(url, headers={"Content-Type": "application/json"}, verify=False) match_next = re.findall(r"\"next\": \"(.*?)\"",response.text, re.MULTILINE | re.IGNORECASE) str_match_next = ''.join(match_next) while match_next != []: url = "https://api.threatstream.com" + str(str_match_next) response = requests.get(url, headers={"Content-Type": "application/json"}, verify=False) match_next = re.findall(r"\"next\": \"(.*?)\"",response.text, re.MULTILINE | re.IGNORECASE)


1.ไป collect value ใน loop จนกว่าจะจบใส่ array อันหนึ่ง





ประวัติการแก้ไข
2021-08-23 16:30:55
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-23 15:47:35 By : TeeTs
 


 

No. 14



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


ไม่บอกก็เช็คเองก็ได้ครับ ดู header มี
link header หรือไม่

ตอบความคิดเห็นที่ : 13 เขียนโดย : TeeTs เมื่อวันที่ 2021-08-23 15:47:35
รายละเอียดของการตอบ ::
แล้ว re คืออะไร

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-23 15:52:29 By : TheGreatGod_of_Death
 


 

No. 15



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 14 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-23 15:52:29
รายละเอียดของการตอบ ::
ใน header ไม่มี link url ครับ

ตัวอย่างที่ผมทำมีแต่แบบนี้ครับ
Code
Example: curl 'https://api.threatstream.com/api/v2/intelligence/?limit=5' -H 'Authorization: apikey <username>:<api_key>'

แล้วก็เอา 'Authorization: apikey <username>:<api_key>' ใส่ไว้ใน header ครับ

url ผมไว้นอก header เวลาดึงข้อมูลได้แค่ 1000 limit
url = "xxxx"
api_key ="xxxx"
user = "xxxx"

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-23 16:46:20 By : TeeTs
 


 

No. 16



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 15 เขียนโดย : TeeTs เมื่อวันที่ 2021-08-23 16:46:20
รายละเอียดของการตอบ ::
ลองเช็คดูแบบนี้ให้หน่อย

Code (Python)
import requests

url = 'api.xxx.com'
print(requests.head(url=url).links)


response
{'next': {'url': 'api.xxx.com?page=2&per_page=10', 'rel': 'next'}, 'last': {'url': 'api.xxx.com?page=5&per_page=10', 'rel': 'last'}}



ถ้าไม่มี 'url' และ 'rel' ก็ทำตามที่เขาบอกคือ

Quote:
หา url+query string ถัดไป จากคีย์ next ของ response string
ด้วย RegEx pattern


next เป็นชื่อ key ใน response
ไม่ใช่ parameter อย่างที่บอกคุณก่อนหน้านี้
admin คุณมั่ว


re คือ Regular expression operations
เวลาใช้ใส่ import re ก่อน
https://docs.python.org/3/library/re.html

ส่วนอื่น ไม่เข้าใจส่วนไหนถามได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-23 17:15:27 By : TheGreatGod_of_Death
 


 

No. 17



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 16 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-23 17:15:27
รายละเอียดของการตอบ ::
ครับล่าสุด vs code ตรง terminal ที่รัน python รันแล้วมันมั่วไปหมดเลยครับ

1.ผมแก้โดย uninstall extension python ก็ไม่หายครับ
2.ผม uninstalll vs code แล้วติดตั้งใหม่ ก็ยังเป็นปัญหาเดิมครับ

3.รูปปัญหาครับ เป็นภาษาแบบนี้ ผมไม่รู้ว่า รัน python ทำไหม terminal เป็นแบบนี้ครับ (2วันก่อนใช้งานได้ปกติครับ)
errorterminal

4.รูปปัญหา 2
error2


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-23 18:03:57 By : TeeTs
 


 

No. 18



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 17 เขียนโดย : TeeTs เมื่อวันที่ 2021-08-23 18:03:57
รายละเอียดของการตอบ ::
ถ้าไม่สาหัส ถอน VS Code ออกทั้งหมด
แล้วติดตั้งใหม่

แต่ถ้าใช้ทำหลายอย่าง ไม่อยาก uninstall
ลองดู User Guide เช่น
https://code.visualstudio.com/docs/supporting/troubleshoot-terminal-launch
https://code.visualstudio.com/docs/editor/integrated-terminal

ถ้าใช้เวลานานในการแก้ไข
ทำงานด่วนก่อนโดยใช้
CLI หรือ Editor/IDE ตัวอื่น

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-23 18:20:26 By : TheGreatGod_of_Death
 


 

No. 19



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


อาจเป็น bug ของ VS Code

ถอนการติดตั้งหรือยัง ยังทันไหม

ถ้ายังทัน...ลองอ่านวิธีแก้ไขตามคอมเมนต์จาก issue นี้
https://github.com/microsoft/vscode/issues/120004
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-23 18:38:10 By : TheGreatGod_of_Death
 


 

No. 20



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 19 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-23 18:38:10
รายละเอียดของการตอบ ::
ผมถอนการติดตั้งแล้วครับ แล้วติดตั้ง vs code ใหม่ ยังเจอปัญหาเดิมครับ ในการรัน terminal python ครับ

vs code บัคหรือเปล่าครับ
ผมถอนการติดตั้ง vs code แล้ว พอติดตั้งใหม่ vs code พวก extension ที่เคยติดตั้งมันยังอยู่เหมือนเดิมครับ

vs code ตอนนี้ v.ล่าสุดครับ

Editor/IDE ตัวอื่น ใช้ sublime text ในการรัน python ได้ไหมครับ



ประวัติการแก้ไข
2021-08-23 18:45:52
2021-08-23 18:46:38
2021-08-23 18:51:10
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-23 18:42:06 By : TeeTs
 


 

No. 21



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 20 เขียนโดย : TeeTs เมื่อวันที่ 2021-08-23 18:42:06
รายละเอียดของการตอบ ::


งั้นลองทำตาม issue ที่ผมให้ไป
มีหลายสาเหตุ และวิธีแก้
เช่น เปลี่ยนขนาด terminal, ติดตั้ง extension ล่อ ฯลฯ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-23 18:47:26 By : TheGreatGod_of_Death
 


 

No. 22



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


Quote:
vs code พวก extension ที่เคยติดตั้งมันยังอยู่เหมือนเดิม


https://debug.to/1074/how-to-uninstall-vs-code-completely
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-23 18:49:42 By : TheGreatGod_of_Death
 


 

No. 23



โพสกระทู้ ( 9,559 )
บทความ ( 2 )



สถานะออฟไลน์


api กำหนด ครั้งละ 1000 เพื่อไม่ให้หนักเซิฟเว่อร์ ใช้เวลาเยอะ

ก็เรียก ไป 2 ครั้ง ได้หรือไม่ แล้วให้ client จัดการรวมเป็นชุด data เดียวกัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-24 20:27:30 By : Chaidhanan
 


 

No. 24



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 23 เขียนโดย : Chaidhanan เมื่อวันที่ 2021-08-24 20:27:30
รายละเอียดของการตอบ ::
ใช่ครับ api กำหนด ครั้งล่ะ 1000 limit เพื่อไม่ให้การทำงานของ server หนักครัล

ส่วนการไปเรียก 2 ครั้ง เขาบอกให้ผมใช้ parameter next loop ประมานว่า loop หนึ่ง จะได้ 1000 limit และ loop ต่อๆไปจะได้ครั้งละ 1000 limit ครับ

แต่เขาให้ code มาแค่นี้ครับ ผมก็ยังหาข้อมูลไม่เจอ
1.code ที่ทำก่อนหน้า get มาได้ 1000 limit ก็จริงแต่ แต่เขาต้องการมากกว่า 2000+ limit เขาเลยแนะนำให้ใช้ parameter next loop
2.code ที่เขาให้ประมาณนี้ครับ

Code
response = requests.get(url, headers={"Content-Type": "application/json"}, verify=False) match_next = re.findall(r"\"next\": \"(.*?)\"",response.text, re.MULTILINE | re.IGNORECASE) str_match_next = ''.join(match_next) while match_next != []: url = "https://api.threatstream.com" + str(str_match_next) response = requests.get(url, headers={"Content-Type": "application/json"}, verify=False) match_next = re.findall(r"\"next\": \"(.*?)\"",response.text, re.MULTILINE | re.IGNORECASE)



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-25 10:31:51 By : TeeTs
 


 

No. 25



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 16 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-23 17:15:27
รายละเอียดของการตอบ ::
2 code นี้จะเชื่อมกันได้อย่างไรครับ
1. code ที่ได้ทำ
Code
import requests import json # url url = "api.xxx.com" api_key ="xxx" user = "xxx" headers = { "Content-Type": "application/json", "Authorization": "apikey " + user + ":" + api_key, } response = requests.get(url, verify=False, headers=headers) print(response.json()) print("status_code = " + str(response.status_code))


2.คือ code ที่เขาให้มาครับ น่าจะยังไม่มีการ loop parameter next ครับ
Code
response = requests.get(url, headers={"Content-Type": "application/json"}, verify=False) match_next = re.findall(r"\"next\": \"(.*?)\"",response.text, re.MULTILINE | re.IGNORECASE) str_match_next = ''.join(match_next) while match_next != []: url = "https://api.threatstream.com" + str(str_match_next) response = requests.get(url, headers={"Content-Type": "application/json"}, verify=False) match_next = re.findall(r"\"next\": \"(.*?)\"",response.text, re.MULTILINE | re.IGNORECASE)




ประวัติการแก้ไข
2021-08-25 10:47:52
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-25 10:46:27 By : TeeTs
 


 

No. 26



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : Genesis™ เมื่อวันที่ 2021-08-20 21:58:01
รายละเอียดของการตอบ ::
offset ใช้กับ python แบบไหนหรอครับ หรือแบบ php เลย ผมเข้าใจต่างกันที่รูปแบบการเขียน

คือ ใช้ offset = 0 by default แล้วผมจะต้องเขียน loop เพื่อมาปรับ offset อย่างไรครับ เพราะ loop หนึ่งจะได้ที่ละ 1000

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-25 11:04:04 By : TeeTs
 


 

No. 27



โพสกระทู้ ( 4,169 )
บทความ ( 7 )

Hall of Fame 2012

สถานะออฟไลน์


- ต้องอธิบายก่อนครับ next ของ API มันคือ การส่ง Client ไปยังหน้าเพจต่างๆที่เรากำหนดเมื่อได้รับ response status == 200

Next()
app.get("/", (req, res, next) => {
  next();
}


- หาคุณต้องการ 2000 record คุณต้องมี Loop 2 รอบ ก่อนเข้า next() หรือคุณอาจใช้การเขียนแบบ Recursive ก็ได้
- แต่คุณต้องไปถามฝั่งโน้นก่อนว่า ถ้าจะกำหนดเริ่มต้น Record Offset ต้องทำยังไง จะต้องทำการส่งลักษณะไหน หรือถ้าฝั่ง Frontend ต้องการส่ง Parameter ค่า ID Record เริ่มต้นต้องทำอย่างไร ฝั่ง javascript ไม่ว่าจะเป็น React,Vue,Next,Nuxt เค้าจะเรียกค่าส่วนนี้ว่า q ผ่าน URL (ไปขอ pattern ส่วนนี้เค้ามา)
- ส่วนสุดท้าย Record ที่ได้มา มันมาที่ละ 1000 Record ตามที่เคยบอกไว้ javascript อะไรพวกนี้มันจะไม่รอให้บรรทัดก่อนหน้าให้เสร็จสิ้น แต่มันจะรันต่อไปเรื่อยๆ โดยไม่หยุดรอ เพราะฉะนั้นในการเข้า Loop ครั้งที่ 2 ข้อมูลได้คละกันมั่วแน่ๆ คุณจำเป็นต้องไปเรียนรู้เรื่อง Promise ที่เป็น async await เพื่อทำการรอบรรทัดปัจจุบันให้ Process เสร็จสิ้นก่อนค่อยทำบรรทัดถัดไป

async await
async function f() {

try {
    let response = await fetch('ROUTE_API');
    let user = await response.json();
    
    console.success('ผ่าน', user);

  } catch(err) {
    console.error('พัง', err);
  }
}

f();


แนะนำได้แค่นี้ครับ


ประวัติการแก้ไข
2021-08-25 11:50:12
2021-08-25 11:52:39
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-25 11:49:14 By : Genesis™
 


 

No. 28



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 25 เขียนโดย : TeeTs เมื่อวันที่ 2021-08-25 10:46:27
รายละเอียดของการตอบ ::
แสดงว่าปัญหา terminal แก้ได้แล้ว?

แล้วที่ให้เช็คตาม No.16 มีข้อมูลมาหรือไม่ ถ้ามีผมจะได้แนะการดึงแบบ pagination
หรือว่า ได้ออกมาเป็นออปเจกว่าง {} จะได้ติชมวิธีการที่เขาให้มา

และอย่าลืม next ไม่ใช่พารามิเตอร์...แต่เป็น response string
ในรูป url+qs ซึ่งนำไปต่อท้ายโดเมน


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-25 12:46:03 By : TheGreatGod_of_Death
 


 

No. 29



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 28 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-25 12:46:03
รายละเอียดของการตอบ ::
terminal อยู่ๆก็บัคครับ ตอนนี้ใช้งานได้ปกติครับ

จาก no.16 ที่ได้ทำตามคำแนะนำไป

Code (Python)
import requests

url = "api.xxx.com"
print(requests.head(url=url).links)


Response
{}



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-25 13:12:16 By : TeeTs
 


 

No. 30



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


update code
Code (Python)
import requests
import re
import json

url = "api.xxx.com"
api_key ="xxx"
user = "xxx"

response = requests.get(url, headers={"Content-Type": "application/json"}, verify=False)

match_next = re.findall(r"\"next\": \"(.*?)\"",response.text, re.MULTILINE | re.IGNORECASE)
str_match_next = ''.join(match_next)

while match_next != []:
    url = "api.xxx.com" + str(str_match_next)
    response = requests.get(url, headers={"Content-Type": "application/json"}, verify=False)
    match_next = re.findall(r"\"next\": \"(.*?)\"",response.text, re.MULTILINE | re.IGNORECASE)

print(response.json())
print("status_code = " + str(response.status_code))



response มาแบบนี้ครับ
PS C:\xampp\htdocs\api> & "C:/Program Files/Python38/python.exe" c:/xampp/htdocs/api/anomali/test.py
C:\Program Files\Python38\lib\site-packages\urllib3\connectionpool.py:1013: InsecureRequestWarning: Unverified HTTPS request is being made to host 'api.threatstream.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
warnings.warn(
Traceback (most recent call last):
File "c:/xampp/htdocs/api/anomali/test.py", line 19, in <module>
print(response.json())
File "C:\Program Files\Python38\lib\site-packages\requests\models.py", line 900, in json
return complexjson.loads(self.text, **kwargs)
File "C:\Program Files\Python38\lib\json\__init__.py", line 357, in loads
return _default_decoder.decode(s)
File "C:\Program Files\Python38\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Program Files\Python38\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
PS C:\xampp\htdocs\api>
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-25 13:31:42 By : TeeTs
 


 

No. 31



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 30 เขียนโดย : TeeTs เมื่อวันที่ 2021-08-25 13:31:42
รายละเอียดของการตอบ ::
print() บรรทัดสุดท้ายยังไม่ทำงาน
คัดลอก error มาหมดแล้วหรือยัง
มีแค่นี้หรือ?

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-25 13:48:57 By : TheGreatGod_of_Death
 


 

No. 32



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 31 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-25 13:48:57
รายละเอียดของการตอบ ::
error คัดลอกเอามาหมดแล้วครับ เห็นบอก error บรรทัด 19 ครับ

ใน File "C:\Program Files\Python38 นี้เกี่ยวด้วยไหมครับ

1.code ก่อนหน้าได้ 1000 limit
2.เอา code จากที่เขาให้มามาเชื่อมต่อกัน พอรันเป็นปัญหาตาม no.30 ครับ

code ที่เพิ่ม จากที่เขาให้มา
Code
response = requests.get(url, headers={"Content-Type": "application/json"}, verify=False) match_next = re.findall(r"\"next\": \"(.*?)\"",response.text, re.MULTILINE | re.IGNORECASE) str_match_next = ''.join(match_next) while match_next != []: url = "api.xxx.com" + str(str_match_next) response = requests.get(url, headers={"Content-Type": "application/json"}, verify=False) match_next = re.findall(r"\"next\": \"(.*?)\"",response.text, re.MULTILINE | re.IGNORECASE)





ประวัติการแก้ไข
2021-08-25 14:42:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-25 14:41:01 By : TeeTs
 


 

No. 33



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


ก่อนอื่นทำความเข้าใจ endpoint

URL

qs

แล้วศึกษาพื้นฐาน Python จาก
https://www.w3schools.com/python/default.asp

โดยเฉพาะสิ่งเหล่านี้
https://www.w3schools.com/python/python_lists_loop.asp
https://www.w3schools.com/python/python_dictionaries.asp
https://www.w3schools.com/python/python_json.asp
https://www.w3schools.com/python/module_requests.asp
https://www.w3schools.com/python/python_regex.asp

Quote:
Python Dictionary ≠ JSON




print(response.json()) ได้ Python Dictionary
ref

ทำให้ RegEx pattern ที่เขาให้มา
r"\"next\": \"(.*?)\""
จะไม่ตรงและค้นหา string ไม่เจอ
ในตัวอย่างเขาจึงใช้ text property จะได้
response เป็น JSON string ตาม pattern

Code
match_next = re.findall(r"\"next\": \"(.*?)\"",response.text, re.MULTILINE | re.IGNORECASE)





ต่อไป มาดูตัวอย่างการสร้าง endpoint
จากการจำลอง response string

Code (Python)
import re

txt = """{
{When will snow falling in Thailand},
{'next': '/api/path/?page=2'},
{what is the next sample?},
{'next': '/api/path/?page=3'}
}"""

# result in list
l = re.findall(r"'next': '(.*?)'",txt, re.MULTILINE | re.IGNORECASE)
print('List:', end = ' ')
print(l)

# join() has no use place, just remove these two lines
j = ''.join(l)  # remove it
print('\nJoin: ' + j)  # remove it

print('\nLoop:')

# Method 1
for v in l:
    url = "https://api.xxx.com" + v
    print(url)

"""
# Method 2
while l != []:  # in order to use this form of condition, pop() method is required
    url = "https://api.xxx.com" + l[0]
    print(url)
    l.pop(0)
"""


พอเห็นภาพบ้างหรือไม่ ...ถ้าไม่ต้องศึกษาพื้นฐาน python ให้เข้าใจก่อน

ทีนี้ลองประยุกต์กับ requests module
สงสัยหรือตัดขัดอะไร ค่อยถามครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-25 15:32:14 By : TheGreatGod_of_Death
 


 

No. 34



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 33 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-25 15:32:14
รายละเอียดของการตอบ ::
ตรง print(response.json()) ได้ Python Dictionary

ผมสงสัยว่า print(response.json()) ทำไมไม่ได้เป็น json หรือครับ และทำไมได้เป็น Python Dictionary
แล้วที่นี้คือ ผมต้องเอา Python Dictionary ไปแปลงเป็น json โดยใช้ RegEx ถูกไหมครับ เพื่อที่จะดูข้อมูลได้ง่ายขึ้นใช่ไหมครับ

ผมแปลงPython Dictionary ไปเป็น jsonไม่ถูกอีกครับ
ใช้เป็น json.dumps() ก็ไม่ได้ครับ



ประวัติการแก้ไข
2021-08-25 18:48:38
2021-08-25 19:13:11
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-25 18:39:37 By : TeeTs
 


 

No. 35



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


JSON vs Python Dictionary
JSON เป็น string มีรูปแบบตามนี้ ***https://www.json.org/json-en.html***
Python Dictionary เป็น data structure (in-memory object)

*** ถ้าสังเกต(รูปแบบ string) เมื่อ print() dict จะได้ผลลัพธ์ ต่างจาก print() json

เมื่อใช้ json module ใน Python
json.loads() แปลง json เป็น dict
json.dump(), json.dumps() แปลง dict เป็น json

อยู่ในลิงค์ที่ผมให้ไปหมดแล้ว...พยายามทำความเข้าใจเอา

Quote:
print(response.json()) ทำไมไม่ได้เป็น json หรือครับ และทำไมได้เป็น Python Dictionary


จริงๆ print(xxx) ได้ output string แต่ส่วนที่ได้ dict คือ response.json()
ผมตอบไม่ได้เหมือนกันว่าเพราะอะไร...ต้องไปถามคนสร้างและคิดชุด module requests
บอกได้แค่ที่มา ที่เขา(กลุ่มคนคิดโมดูล) ระบุไว้ในเอกสารการใช้โมดูล requests
https://docs.python-requests.org/en/latest/api/#requests.Response.json

ใจความว่า

Quote:
json(**kwargs)
Returns the json-encoded content of a response, if any.

Parameters: **kwargs – Optional arguments that json.loads takes.
Raises: requests.exceptions.JSONDecodeError – If the response body does not contain valid json.





Quote:
ผมต้องเอา Python Dictionary ไปแปลงเป็น json โดยใช้ RegEx


การแปลงระหว่าง
Python Dictionary <-> JSON
ไม่จำเป็นต้องใช้ RegEx
แต่ใช้ loads(), dumps() method ตามที่กล่าวไปแล้วข้างต้น

ส่วน RegEx นำมาใช้ในการค้นหา string ที่มี pattern เช่น wildcard, ...
แล้วทำไมต้องหา string? ...เพราะ response ได้กลับมาเป็น string




ตัวอย่างที่ผมให้ไปไม่เข้าใจเลย ???

จุดประสงค์ที่ให้ตัวอย่าง เพื่อบอกให้รู้ว่า
โค้ดวิธีการดึง limit=1000 หลายรอบจนครบที่ต้องการ (limit=2xxx)
ที่ admin คุณส่งมาให้ ตามนี้

Code (Python)
response = requests.get(url, headers={"Content-Type": "application/json"}, verify=False)

match_next = re.findall(r"\"next\": \"(.*?)\"",response.text, re.MULTILINE | re.IGNORECASE)
str_match_next = ''.join(match_next)

while match_next != []:
    url = "api.xxx.com" + str(str_match_next)
    response = requests.get(url, headers={"Content-Type": "application/json"}, verify=False)
    match_next = re.findall(r"\"next\": \"(.*?)\"",response.text, re.MULTILINE | re.IGNORECASE)


มีทั้งข้อดีและเสีย
ดี - ป้องกัน fake-Developer (Copier) นำโค้ดไปคัดลอกวาง โดยไม่ดูให้ดีก่อน
...เนื่องจาก syntax/logic เพี้ยนหรือไม่เป๊ะ แต่ก็เป็นแนวทางไปสู่จุดหมาย (limit > 1000)
เสีย - ป้องกันแม้กระทั่ง Entry-Programmer...ซึ่งผมทำเป็นกรณีศึกษา/สร้างบทเรียนการปฏิบัติ
ในตัวอย่างนั้นแล้ว เช่น while match_next != []: ถ้าจะใช้ต้องมี pop(0) เป็นต้น




ยังไงลองศึกษาดู...ช้าๆ มักได้ของ งาม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-25 20:10:36 By : TheGreatGod_of_Death
 


 

No. 36



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 35 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-25 20:10:36
รายละเอียดของการตอบ ::
code ชุดนี้ยังไม่ parameter next loop ใช่ไหมครับ
Code
response = requests.get(url, headers={"Content-Type": "application/json"}, verify=False) match_next = re.findall(r"\"next\": \"(.*?)\"",response.text, re.MULTILINE | re.IGNORECASE) str_match_next = ''.join(match_next) while match_next != []: url = "api.xxx.com" + str(str_match_next) response = requests.get(url, headers={"Content-Type": "application/json"}, verify=False) match_next = re.findall(r"\"next\": \"(.*?)\"",response.text, re.MULTILINE | re.IGNORECASE)

ข้อมูลที่เขาแนะนำมา คือ
1.แนะนำ code ที่ให้มา
2.บอกไป collect value ใน loop นั้นๆ จนกว่าจะจบใส่ array อันหนึ่ง (ผมไม่รู้อีก)
3.เขาบอกว่า เขาใช้พวก regex มาช่วยดึง data ที่ต้องการ ไม่ได้ใช้พวก json.load อะไรแบบนั้น (ผมไม่รู้อีก ผมศึกษา regex ที่พี่แนะนำก็ไม่เข้าใจอีก)
4.เขาบอกว่า มันดีตรงที่ flexible มาก แต่ต้องไปเขียน regex เพิ่มเอาเอง แล้วเอามาใส่ใน code อีกที (ผมไม่รู้อีก ว่าจะเขียนยังไง)
4.ข้อนี้ผมจะทำยังไงดี ตอนนี้ที่ผมทำได้คือ get มาได้ 1000 limit จาก no.1

แสดง ผมต้องเขียน loop ขึ้นมาเองได้ยังไงครับ ศึกษาจากตัวที่พี่ให้ จาก w3school ศึกษานะ ก็เป็นแบบ basic แต่ผมจะเขียนให้มัน loop ครั้งล่ะ 1000,1000,1000 จะประยุกต์ใช้กับงานยังไงครับ

หรือผมต้องไปถามเขาก่อนว่า loop next ทำแบบไหนใช่ไหมครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-26 11:32:23 By : TeeTs
 


 

No. 37



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 36 เขียนโดย : TeeTs เมื่อวันที่ 2021-08-26 11:32:23
รายละเอียดของการตอบ ::
1. อยากทำความเข้าใจ โดยให้ผมอธิบายเพิ่มเติม

หรือ

2. ต้องการคำตอบเลย (ซึ่งจริงๆ คำตอบอยู่ในตัวอย่างแล้ว)
ผมจะได้ไม่ต้องพิมพ์ยาวๆ จะให้คุณก็อปวางเลย

แต่ถ้าแบบนั้น คุณต้องยอมรับความสูญเสีย
และการปิดกั้นโอกาสอันใหญ่หลวง นั่นก็คือ
คุณจะไม่สามารถต่อยอดอะไรได้เองอีกเลย
ความรู้ก็ไม่สามารถนำไปประยุกต์
มีโจทย์ใหม่ๆ มาก็จะแก้ปัญหาไม่ได้ ต้องรอการป้อนจากคนอื่น ฯลฯ เป็นต้น

...สิ่งเดียวที่จะได้รับ คือ งานเสร็จ บรรลุเป้าเฉพาะหน้าเท่านั้น



จะเอาทางไหน ก็บอกด้วยนะครับ
ผมไม่ติดขัดทั้งสองทางเลือก
สะดวกและพอใจแบบไหน

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-26 12:17:20 By : TheGreatGod_of_Death
 


 

No. 38



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


ผมเลือกให้เลยแล้วกัน

โค้ดดึงข้อมูลจาก api(ของคุณ TEEST โดยเฉพาะ)
แบบ limit=1000*3




แบบก็อปวาง 99.99% (สำหรับ non-Programmer)
import requests
import json
import re

# url
url = "xxxx"
api_key ="xxxx"
user = "xxxx"

headers = {
    "Content-Type": "application/json",
    "Authorization": "apikey " + user + ":" + api_key,
}

response = requests.get(url, headers=headers, verify=False)

match_next = re.findall(r"\"next\": \"(.*?)\"",response.text, re.MULTILINE | re.IGNORECASE)

data = [response.text]
for i in range(2):
    if len(match_next) > 0:
        url = "api.xxx.com" + match_next[0]
        response = requests.get(url, headers=headers, verify=False)
        match_next = re.findall(r"\"next\": \"(.*?)\"",response.text, re.MULTILINE | re.IGNORECASE)
        data.append(response.text)

print(json.dumps(data, indent=4))


อีก 0.01% คือ ค่าผิดพลาดจากการแทนค่า API endpoint และ Python indentation(ย่อหน้า) และ Typos ถ้ามี (แต่คงไม่)




ถ้าจะพลาดได้ขนาดนั้นก็...
ปิดจ๊อป
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-26 14:01:40 By : TheGreatGod_of_Death
 


 

No. 39



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 37 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-26 12:17:20
รายละเอียดของการตอบ ::
เอาแบบที่ 1 ครับ
1. อยากทำความเข้าใจ โดยให้คุณอธิบายเพิ่มเติมครับ และในตัวอย่างที่แนะนำมาจาก no.33 ที่ให้ไปประยุกต์กับ requests module อันนี้ผมยังไม่เข้าใจครับ
2.no.33 ตรง code python ที่บอกให้ประยุกต์กับ requests module ผมลองทำดูแต่ยังผิดครับ ให้คำแนะนำได้ครับ
Code (Python)
import requests
import re

url = "api.xxx.com"
api_key ="xxx"
user = "xxx"

headers={
        "Content-Type": "application/json",
        "Authorization": "apikey " + user + ":" + api_key,
        "next": "api.xxx.com",
        "next": "api.xxx.com"
    }

response = requests.get(url, headers=headers, verify=False)

# Method 1
match_next = re.findall(r"'next': '(.*?)'",response.text, re.MULTILINE | re.IGNORECASE)
str_match_next = ''.join(match_next)
print(match_next)

# Method 2
while match_next != []:
    url = "api.xxx.com" + str(str_match_next)
    response = requests.get(url, headers=headers, verify=False)
    match_next = re.findall(r"\"next\": \"(.*?)\"",response.text, re.MULTILINE | re.IGNORECASE)
    print(url)
    match_next.pop()


3.ผลลัพธ์ครับ ได้ค่านี้ []
Code
PS C:\xampp\htdocs\api> & "C:/Program Files/Python38/python.exe" c:/xampp/htdocs/api/anomali/test1.py C:\Program Files\Python38\lib\site-packages\urllib3\connectionpool.py:1013: InsecureRequestWarning: Unverified HTTPS request is being made to host 'api.threatstream.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings warnings.warn( [] PS C:\xampp\htdocs\api>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-26 14:18:35 By : TeeTs
 


 

No. 40



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 38 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-26 14:01:40
รายละเอียดของการตอบ ::
จาก no.38 ผมทำอยู่ครับ ผมไม่ได้มาด้านโปรแกรมเมอร์โดยตรง คุณเองก็เลือกที่จะตอบเองเลยหรอกครับ โดยที่ไม่รอให้ ผมมาตอบก่อนล่ะครับ

แล้วแบบนี้ผมจะไปได้อย่างไร ผมกำลังทำอยู่ เพื่อที่ทำแล้วให้คุณช่วยดู ไม่ใช่ให้มาเฉลยคำตอบผมตรงๆครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-26 14:26:30 By : TeeTs
 


 

No. 41



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 39 เขียนโดย : TeeTs เมื่อวันที่ 2021-08-26 14:18:35
รายละเอียดของการตอบ ::
ในตัวอย่างผมบอกให้เอา join ออก
ยังติดมาทำไม ...แต่ไม่เป็นไร


ผมทำคำตอบสุดท้ายไว้ให้แล้วใน
No. 38
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-26 14:27:47 By : TheGreatGod_of_Death
 


 

No. 42



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 40 เขียนโดย : TeeTs เมื่อวันที่ 2021-08-26 14:26:30
รายละเอียดของการตอบ ::
ที่ผมไม่รอ เพราะผมจะไม่อยู่แล้ว...
ที่นี่ไม่ได้ประโยชน์อะไร
ผมจะไปปลูกผัก เลี้ยงสัตว์ กินอยู่ที่บ้าน

ปล.ผมก็ไม่ใช่โปรแกรมเมอร์...แค่สนใจและเรียนเอง
เพียงมีเวลา (หมกมุ่นกับมัน)
ที่เคยเรียนสมัย มัธยม อุดมฯ มีแค่ c/c++/vb
PHP ? Python? , ...9รอ9
No ผมไม่เคยรู้จักมาก่อน
เพิ่งมาดู doc ช่วงหลังๆ ปีสองปีนี้เอง

ปล.2 คำตอบสุดท้ายของสุดท้าย
ลาก่อน ThaiCreate (ค้นพบโดยบังเอิญ เมื่อ 15 ปีที่แล้ว)

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-26 14:34:51 By : TheGreatGod_of_Death
 


 

No. 43



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 41 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-26 14:27:47
รายละเอียดของการตอบ ::
เพิ่มเติมครับ จาก no.38
for i in range(2) คือให้ loop 2 รอบหรือครับ

print(json.dumps(data, indent=4)) ทำไม่ได้เป็น json ครับ และ indent=4 มาจากไหนครับ ผมถามหน่อย ถ้าจะให้ก็อปวาง ทำไม่คุณไม่อธิบายใน code ให้ไปเลย ว่าแต่ละส่วนคืออะไร จะได้ไม่ต้องมาถามให้เสียเวลาครับ

ย้ำนะ ผมไม่ได้ต้องการ ก็อปวาง
ถ้าคุณเอาแบบ ก็อปวางให้ผม ผมไม่ได้เอา และไม่ได้สน ผมสนตรงที่ว่าผมจะต้องทำให้ได้ คือก็เลือกแบบที่ 1
เพราะ นั้นมัน code ที่คุณทำ ผมไม่ใช้คนทำและผมไม่ต้องการแบบนั้น สิ่งที่ผมต้องการคือ ต้องการคนที่จะอธิบายให้ผมเข้าใจ และผมลองทำกับมัน พอทำแล้วเจอปัญหานี้ ผมจึงต้องถามในเว็บนี้ครับ




แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-26 14:52:55 By : TeeTs
 


 

No. 44



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 42 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-26 14:34:51
รายละเอียดของการตอบ ::
no. 40 คืออะไร ผมงง

ที่ผมไม่รอ เพราะผมจะไม่อยู่แล้ว มันเกี่ยวอะไรหรือครับ งง?
ที่นี่ไม่ได้ประโยชน์อะไร ที่นี่หมายถึงเว็บไหม ถ้าเว็บไม่มีประโยชน์แล้วคนจะเข้ามาปรึกษาทำไมกัน?
ผมจะไปปลูกผัก เลี้ยงสัตว์ กินอยู่ที่บ้าน นี่ก่อส่วนหนึ่งที่เป็นอาชีพ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-26 14:58:30 By : TeeTs
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ปรึกษาครับ GET ข้อมูลมาได้แค่ 1000 Limit ต้องการให้ได้ 2000+ Limit ทำอย่างไร ต้องใช้อะไรมาช่วยครับ ขอแนวทางด้วยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่