代码如下:
import re
import time
import requests
import pandas as pd
from retrying import retry
from concurrent.futures import ThreadPoolExecutor
start = time.clock() # 计时-开始
# plist 为1-100页的URL的编号num
plist = []
for i in range(1, 101):
j = 44 * (i - 1)
plist.append(j)
listno = plist
datatmsp = pd.DataFrame(columns=[])
while True:
@retry(stop_max_attempt_number=8) # 设置最大重试次数
def network_programming(num):
url = 'https://s.taobao.com/search?q=%E6%B2%99%E5%8F%91&imgfile= \
&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_ \
20180207&ie=utf8&sort=sale-desc&style=list&fs=1&filter_tianmao \
=tmall&filter=reserve_price%5B500%2C%5D&bcoffset=0& \
p4ppushleft=%2C44&s=' + str(num)
web = requests.get(url, headers=headers)
web.encoding = 'utf-8'
return web
代码原址:https://xpanx.com/2099.html
我不明白的地方有两点:
第一是它的【URL】是如何构建的,我平常在构建URL的时候用的写法都是:
import requests
import re
head={}
urls='https://s.taobao.com/search'
paramss={'data-key': 's',
'data-value': '88',
'ajax': 'true',
'_ksTS': '1651587828696_1134',
'callback': 'jsonp1135',
'spm': 'a21bo.jianhua/evo255811b326291.201856-fline.7.5af911d9ucXfTD',
'q': '男士外套',
'refpid': '430147_1006',
'source': 'tbsy',
'style': 'grid',
'tab': 'all',
'pvid': 'd0f2ec2810bcec0d5a16d5283ce59f70',
'bcoffset': '0',
'p4ppushleft': '3,44',
's': '0'}
req=requests.get(url=urls,headers=head,params=paramss)
req=req.text
print(req)
希望能解释一下第一段代码中关于[URL]的写法
第二点是虽然我对于第一段的代码不是很明白,但是我认为与我的代码的区别也不过是写法之间的区别,可是据作者说自己的代码运行起来完全没问题,可为什么我的代码就无法获取数据呢?