由于PyCharm返回的不兼容的操作数错误导致2个字符串连接失败

时间:2017-05-21 14:04:48

标签: python-2.7 pycharm string-concatenation

我试图运行以下代码:

# -*- coding: utf8 -*-
import requests
from bs4 import BeautifulSoup
link = "https://www.emploi-public.ma/ar/index.asp?p="
number_of_jobs = 0
houceima = u"الحسيمة"
print type(houceima)
for i in range(1,3):
    page_link = link+str(i)
    print page_link
    emp_pub = requests.get(page_link)
    soup = BeautifulSoup(emp_pub.content,"lxml")
    for link in soup.find_all("a"):
        if houceima in link :
            print link

但我收到了以下错误:

Traceback (most recent call last):
  File "scrape_houceima", line 9, in <module>
    page_link = link+str(i)
TypeError: unsupported operand type(s) for +: 'Tag' and 'str'

我正在使用PyCharm。我说了我的IDE,因为同样的连接page_link = link+str(i)在IDLE中执行得很好 这可能是什么问题?

1 个答案:

答案 0 :(得分:3)

您在代码中重复使用link

link = "https://www.emploi-public.ma/ar/index.asp?p="

for link in soup.find_all("a"):

后者使用替换第一个link引用,因此它不再是字符串对象而是Tag对象。

不要掩盖这样的变量,重命名其中一个。也许第一次使用可以命名为base_url