[英]LOOP When scraping with python
我正在嘗試使用此簡單代碼使用python抓取數據
import requests
import json
url = "https://xxxxxxxx.com/getNamesEnc02Motasel2.php?keyword=fais&type=2&limit=100"
r = requests.get(url)
cont = json.loads(r.content)
print(cont)
代碼的輸出:JSON
[{u'phone': u'99399934', u'name': u'fai'}, {u'phone': u'99111267', u'name': u'Fai2 Basheer '}, {u'phone': u'50129494', u'name': u'Fai4 Delly '}]
它對我來說很棒,但問題是需要循環,因此我可以發送多個帶有不同參數的示例請求:
https://xxxxxxxx.com/getNamesEnc02Motasel2.php?keyword=JOHN&type=2&limit=6000"
https://xxxxxxxx.com/getNamesEnc02Motasel2.php?keyword=SAM&type=2&limit=9000"
https://xxxxxxxx.com/getNamesEnc02Motasel2.php?keyword=JOHN&type=2&limit=1000"
https://xxxxxxxx.com/getNamesEnc02Motasel2.php?keyword=HARRY&type=2&limit=7000"
因為每個不同的限制參數值都會從相同的關鍵字中刪除新數據,因為json請求僅返回1000Row。
第一種方法 :
使用網址list
,然后對其進行迭代以獲取每個網址的響應。
urls = ['https://xxxxxxxx.com/getNamesEnc02Motasel2.php?keyword=JOHN&type=2&limit=6000"',
'https://xxxxxxxx.com/getNamesEnc02Motasel2.php?keyword=SAM&type=2&limit=9000"',
'https://xxxxxxxx.com/getNamesEnc02Motasel2.php?keyword=JOHN&type=2&limit=1000"',
'https://xxxxxxxx.com/getNamesEnc02Motasel2.php?keyword=HARRY&type=2&limit=7000"']
for url in urls:
r = requests.get(url)
cont = json.loads(r.content)
print(cont)
第二種方法 :
包含所有參數的嵌套dict
:
data = {
'data_1' : {'keyword': 'JOHN', 'type': '2', 'limit': '6000'},
'data_2' : {'keyword': 'SAM', 'type': '2', 'limit': '2000'},
'data_3' : {'keyword': 'JOHN', 'type': '2', 'limit': '1000'},
'data_4' : {'keyword': 'HARRY', 'type': '2', 'limit': '7000'}
}
for param in data:
page = requests.get("https://xxxxxxxx.com/getNamesEnc02Motasel2.php?", params=data[param])
cont = json.loads(r.content)
print(cont)
parameters = [
'JOHN:6000',
'SAM:9000',
'JOHN:1000',
'HARRY:7000']
import requests
import json
for item in parameters:
key, value = item.split(':')
url = "https://xxxxxxxx.com/getNamesEnc02Motasel2.php?keyword=%s&type=2&limit=%s" %(key, value)
r = requests.get(url)
cont = json.loads(r.content)
print(cont)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.