【发布时间】:2018-07-04 17:20:17
【问题描述】:
我使用openpyxl 在python 中编写了一个脚本,以从Sheet1 获取一些names 及其对应的values,并将它们用作要在url 中传递的参数,以使其成为有效的url。问题是当我运行我的脚本时,即使Sheet1 中只有 5 个 URL,它也会继续打印 URL。到目前为止,我的知识是,我定义max row 的方式是准确的。最大行数如何变为无限?
这是脚本:
import requests
from openpyxl import load_workbook
wb = load_workbook('ReverseSearch.xlsx')
ws = wb['Sheet1']
def search_name(session,query,query1):
session.headers = {"User-Agent":"Mozilla/5.0"}
res = session.get(url.format(query,query1))
print(res.url)
if __name__ == '__main__':
url = "https://www.yellowpages.com/los-angeles-ca/mip/{}-{}"
for row in range(2, ws.max_row + 1): #I used row 2 cause there are headers in row 1
key = ws.cell(row=row,column=1).value
key1 = ws.cell(row=row,column=2).value
session = requests.Session()
search_name(session,key,key1)
names我用过:
café claude
sears fine food
chaat cafe
bean bag coffee house
primo patio cafe
values我用过:
3392129
473113343
18528177
12192803
641231
我应该只获得 5 个链接(完全合格),但是当没有剩余参数时,我会得到空白网址。
https://www.yellowpages.com/san-francisco-ca/mip/cafe-claude-3392129?lid=3392129
https://www.yellowpages.com/san-francisco-ca/mip/sears-fine-food-473113343?lid=473113343
https://www.yellowpages.com/san-francisco-ca/mip/chaat-cafe-18528177?lid=18528177
https://www.yellowpages.com/san-francisco-ca/mip/bean-bag-coffee-house-12192803?lid=12192803
https://www.yellowpages.com/san-francisco-ca/mip/primo-patio-cafe-641231?lid=641231
https://www.yellowpages.com/los-angeles-ca/mip/None-None
https://www.yellowpages.com/los-angeles-ca/mip/None-None
https://www.yellowpages.com/los-angeles-ca/mip/None-None
我希望我的脚本在打印 5 个链接时停止。
顺便说一句,网址是这样的:
url = "https://www.yellowpages.com/los-angeles-ca/mip/{}-{}"
【问题讨论】:
标签: python python-3.x web-scraping openpyxl