python 爬取页面数据,并将数据安插到MySQL中
python 爬取页面数据,并将数据插入到MySQL中?
爬取网站地址:http://www.xicidaili.com/nn
通过Python获取IP地址,端口,位置,是否匿名,类型,速度,连接时间,验证时间。
已经可以获取上述数据,但将这些数据插入到数据库中遇到了些问题。
将这些数据插入到数据库中,但在执行过程中出现了如下的错误:_mysql_exceptions.OperationalError: (1136, "Column count doesn't match value count at row 1",数据库表的列名和程序的插入数据库部分代码的字段名是一致的,不知原因是什么?求各位知乎大神指点下,谢谢...
下面是代码
------解决思路----------------------
字段类型不匹配,请检查
爬取网站地址:http://www.xicidaili.com/nn
通过Python获取IP地址,端口,位置,是否匿名,类型,速度,连接时间,验证时间。
已经可以获取上述数据,但将这些数据插入到数据库中遇到了些问题。
将这些数据插入到数据库中,但在执行过程中出现了如下的错误:_mysql_exceptions.OperationalError: (1136, "Column count doesn't match value count at row 1",数据库表的列名和程序的插入数据库部分代码的字段名是一致的,不知原因是什么?求各位知乎大神指点下,谢谢...
下面是代码
import requests
from bs4 import BeautifulSoup
import MySQLdb
import MySQLdb.cursors
import sys
reload(sys)
sys.setdefaultencoding('utf8')
proxy_info = []
url = 'http://www.xici.net.co/nn/1'
page_code = requests.get(url).text
soup = BeautifulSoup(page_code)
table_soup = soup.find('table')
proxy_list = table_soup.findAll('tr')[1:]
for tr in proxy_list:
td_list = tr.findAll('td')
ip = td_list[2].string
port = td_list[3].string
location = td_list[4].string or td_list[4].find('a').string
anonymity = td_list[5].string
proxy_type = td_list[6].string
speed = td_list[7].find('div', {'class': 'bar'})['title']
connect_time = td_list[8].find('div', {'class': 'bar'})['title']
validate_time = td_list[9].string
# strip
l = [ip, port, location, anonymity, proxy_type, speed, connect_time, validate_time]
for i in range( len(l) ):
if l[i]:
l[i] = l[i].strip()
proxy_info.append(l)
for j in range(len(proxy_info)):
conn = MySQLdb.connect(host='localhost', user='root',
passwd='123456', db='python', port = 3306, charset = 'utf8')
cur = conn.cursor()
cur.execute('insert into proxy(ip, port, location, anonymity, proxy_type, speed, connect_time, validate_time) values(%s%s%s%s%s%s%s%s)', (ip, port, location, anonymity, proxy_type, speed, connect_time, validate_time))
#temp = "insert into ipList(ipList) values ("+ ip_list[j] + ")"
#print temp
print 'success connect'
conn.commit()
cur.close()
conn.close()
------解决思路----------------------
字段类型不匹配,请检查