【发布时间】:2015-11-22 15:06:28
【问题描述】:
我想知道如何组合两个变量。
我的目标是,如果我正在爬行,它应该打印出 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 语句的情况下完成它
【问题讨论】:
-
试试字典,也请重新运行您的代码并发布它和输出。上面的代码有问题,没有生成你显示的输出。
-
感谢您的反馈。你能详细说明一下吗?在这种情况下如何创建 dic?我有点困惑。抱歉,如果我让您感到不安,但我对 Python 还是很陌生
-
这里有一个字典教程learnpythonthehardway.org/book/ex39.html 它将城市名称与您感兴趣的号码
{'Paris':2,'Rome':3}联系起来,这样您就可以轻松获得PartnerID。但是首先您的代码存在一些问题,因此如果您需要帮助,请重新发布工作代码(或带有错误输出的非工作代码) -
感谢您的反馈。修改了我的代码。请看一看。我按照您的建议创建了一个 dic,但是如何在不每次都使用 If else 语句的情况下获得所需的结果。感谢您的反馈
标签: python beautifulsoup web-crawler