爬行输出——连接两个变量
Crawling output - connecting two variables
我想知道如何组合两个变量。
我的目标是它应该打印出 partnerID = 2
如果我正在爬行 7236
代表罗马和 partnerID = 3
如果我正在爬行例如7665
代表柏林。
这是我的代码:
RegionID = {7236: 2, 7665: 3}
for reg in RegionID:
page = 0
while page <= max_pages:
page += 1
r = requests.get("http://www.spasso.com/affiliatesearch.aspx?®ionid=" + str(reg) + "&pid=" + str(page))
soup = BeautifulSoup(r.content)
g_data = soup.find_all("div", {"class": "gridHeadOuter productInfoOuter"})
for item in g_data:
Header = item.find_all("div", {"class": "offerInto"})
Header_final = (Header[0].contents[0].text.strip())
partner_ID = 2
print("Header: " + Header_final + " | " + "PartnerID: " + partner_ID)
这是我从上面的代码得到的输出:
Header: 1-hour Paris Sightseeing Cruise | PartnerID: 3
Header: Rome DC Open Top Hop-On Hop-Off | PartnerID: 3
理想情况下输出应该是这样的:
Header: 1-hour Paris Sightseeing Cruise | PartnerID: 3
Header: Rome DC Open Top Hop-On Hop-Off | PartnerID: 2
我不想使用 if...else
语句,因为我会有很多 RegionIDs
,我正在寻找更有效的解决方案。
更新
修改了我的代码,因为它有一些错误。按照建议创建了一个 dic,但现在仍然知道如何在不每次都使用 if...else
语句
的情况下完成它
我修改了上面的代码以使其正常工作。这是一个示例,说明如何使用 dictionary
获取 PartnerID
.
RegionIDArray = [7236, 7665]
dict = {7236: 2, 7665: 3} #{'Rome': 3, 'Paris': 2}
for RegionID in RegionIDArray:
for page in range(1,2):
url = "http://www.isango.de/affiliatesearch.aspx?®ionid=" + str(RegionID) + "&pid=" + str(page)
html = urllib.request.urlopen(url).read()
soup = BeautifulSoup(html)
g_data = soup.find_all("div", {"class": "gridHeadOuter productInfoOuter"})
for item in g_data:
Header = item.find_all("div", {"class": "offerInto"})
Header_final = (Header[0].contents[0].text.strip())
print("Header: " + Header_final + " | " + "PartnerID: " + str(dict[RegionID]))
输出为:
Header: Washington Odyssey Lunch Cruise | PartnerID: 2
Header: Audio Tour, Candlelit Dinner and Concert at Charlottenburg Palace, Berlin | PartnerID: 3
我想知道如何组合两个变量。
我的目标是它应该打印出 partnerID = 2
如果我正在爬行 7236
代表罗马和 partnerID = 3
如果我正在爬行例如7665
代表柏林。
这是我的代码:
RegionID = {7236: 2, 7665: 3}
for reg in RegionID:
page = 0
while page <= max_pages:
page += 1
r = requests.get("http://www.spasso.com/affiliatesearch.aspx?®ionid=" + str(reg) + "&pid=" + str(page))
soup = BeautifulSoup(r.content)
g_data = soup.find_all("div", {"class": "gridHeadOuter productInfoOuter"})
for item in g_data:
Header = item.find_all("div", {"class": "offerInto"})
Header_final = (Header[0].contents[0].text.strip())
partner_ID = 2
print("Header: " + Header_final + " | " + "PartnerID: " + partner_ID)
这是我从上面的代码得到的输出:
Header: 1-hour Paris Sightseeing Cruise | PartnerID: 3
Header: Rome DC Open Top Hop-On Hop-Off | PartnerID: 3
理想情况下输出应该是这样的:
Header: 1-hour Paris Sightseeing Cruise | PartnerID: 3
Header: Rome DC Open Top Hop-On Hop-Off | PartnerID: 2
我不想使用 if...else
语句,因为我会有很多 RegionIDs
,我正在寻找更有效的解决方案。
更新
修改了我的代码,因为它有一些错误。按照建议创建了一个 dic,但现在仍然知道如何在不每次都使用 if...else
语句
我修改了上面的代码以使其正常工作。这是一个示例,说明如何使用 dictionary
获取 PartnerID
.
RegionIDArray = [7236, 7665]
dict = {7236: 2, 7665: 3} #{'Rome': 3, 'Paris': 2}
for RegionID in RegionIDArray:
for page in range(1,2):
url = "http://www.isango.de/affiliatesearch.aspx?®ionid=" + str(RegionID) + "&pid=" + str(page)
html = urllib.request.urlopen(url).read()
soup = BeautifulSoup(html)
g_data = soup.find_all("div", {"class": "gridHeadOuter productInfoOuter"})
for item in g_data:
Header = item.find_all("div", {"class": "offerInto"})
Header_final = (Header[0].contents[0].text.strip())
print("Header: " + Header_final + " | " + "PartnerID: " + str(dict[RegionID]))
输出为:
Header: Washington Odyssey Lunch Cruise | PartnerID: 2
Header: Audio Tour, Candlelit Dinner and Concert at Charlottenburg Palace, Berlin | PartnerID: 3