所以,我正在学习python和web抓取,所以如果这是非常基本的东西,请原谅我。
我找到了一个脚本,并对其进行了修改,以刮取yell.com
现在,我明白了分页。我能够使用与下面类似的代码来抓取一个城市的整个集合。
for x in range(1,9):
print(f'Scraping page {x}')
content = extract(f'https://www.yell.com/ucs/UcsSearchAction.do?scrambleSeed=134234234&keywords=dentists&location=birmingham&pageNum={x}')
transform(content)
time.sleep(5)
load()
print('Saved to CSV')
现在,我有一个我想刮的城市列表。
例如,上面的location=birmingham
参数会改变location=portsmouth
我提出的解决方案是在一个数组中定义整个城市列表(可能很大(,然后调用它们。
然而,我希望刮到上面定义的整个范围,然后移动到另一个城市,重置范围。我想不通。
听起来你只需要包含一个第二个for循环就可以浏览你的长城市列表。然后city
可以包含在您的URL中。例如:
cities = ['birmingham', 'portsmouth', 'london'] # long list of cities
for city in cities:
print(f'City - {city}')
for x in range(1, 9):
print(f'Scraping page {x}')
content = extract(f'https://www.yell.com/ucs/UcsSearchAction.do?scrambleSeed=134234234&keywords=dentists&location={city}&pageNum={x}')
transform(content)
time.sleep(5)
load()
print('Saved to CSV')