2016-05-07 8 views
0

私はいくつかのウェブサイトのホームページを保存しているデータベースを1つ持っています。私はこのスクリプトがこのデータベースから1つのリンクを取得するようにして、ページに存在する他のhrefリンクを見つけて、それをmysqlの他のテーブルに挿入しなければなりません。ここにスクリプトがあります: -mysqlからURLを取得中にpython beautifulsoupクローラエラーが発生する

import requests 
from bs4 import BeautifulSoup 
import MySQLdb 
import os 
import urllib2 
conn = MySQLdb.connect(host= "localhost", 
       user="user", 
       passwd="password", 
       db="crw") 
n = "no" 
cat1 = "MOVIES" 
cat2 = "NEWS" 
loc = "SL" 
act = "YES" 
cursor = conn.cursor() 
ext1 = ("SELECT LINK FROM LINK_MASTER WHERE ACT = %s and CAT1 = %s AND CAT2 = %s AND LOC = %s") 
cursor.execute(ext1, (act, cat1, cat2, loc)) 
urlq = cursor.fetchone() 
url = urlq 
print url 
response = requests.get(url) 
html = response.content 
soup = BeautifulSoup(html, 'html.parser') 
for item in soup.find_all(attrs={"class": "post-title"}): 
    for link in item.find_all('a'): 
     p = (link.get('href')) 
     print p 
     cursor.execute("INSERT IGNORE INTO URL(URL,FD,CAT1,CAT2) VALUES (%s,%s,%s,%s)", (p,n,cat1,cat2)) 
     conn.commit() 

私は次のエラーが発生しています。私はPythonには新しいし、新しいものを学ぼうとしているので、これを解決するのを手伝ってください。

Traceback (most recent call last): 
    File "news.py", line 25, in <module> 
    response = requests.get(url) 
    File "/usr/lib/python2.7/dist-packages/requests/api.py", line 55, in get 
    return request('get', url, **kwargs) 
    File "/usr/lib/python2.7/dist-packages/requests/api.py", line 44, in request 
    return session.request(method=method, url=url, **kwargs) 
    File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 428, in request 
    env_proxies = get_environ_proxies(url) or {} 
    File "/usr/lib/python2.7/dist-packages/requests/utils.py", line 516, in get_environ_proxies 
    if should_bypass_proxies(url): 
    File "/usr/lib/python2.7/dist-packages/requests/utils.py", line 478, in should_bypass_proxies 
    netloc = urlparse(url).netloc 
    File "/usr/lib/python2.7/urlparse.py", line 143, in urlparse 
    tuple = urlsplit(url, scheme, allow_fragments) 
    File "/usr/lib/python2.7/urlparse.py", line 182, in urlsplit 
    i = url.find(':') 
AttributeError: 'tuple' object has no attribute 'find' 
+0

を見つけるurl'とき 'の値を例外が発生する...ヒントを与えるかもしれない – har07

答えて

0

URLがfetchoneから返さタプルである、あなたはタプルそのものではないの要求にそれを渡す必要があります:(?デバッグ)

url = cursor.fetchone()[0] 
+1

thx。これはうまくいった。 –

関連する問題