|
先放代码,如下
# -*- coding:utf-8 -*-
from urllib import request
from bs4 import BeautifulSoup
import re
import pymysql
#解析URL
def req(url):
req = request.Request(url)
req.add_header("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36")
resp = request.urlopen(req)
soup = BeautifulSoup(resp,'html.parser')
return soup
#输出笑话内容
def qiushi(soup):
jieguo = soup.findAll("div",{"class":"content"})
for jieguo_text in jieguo:
print(jieguo_text.get_text())
return jieguo
#生成下一页连接
def nextlink(soup):
nextpage = soup.find('span',{'class':'next'}).parent
nextlink = "http://www.qiushibaike.com" + nextpage.get('href')
return nextlink
url = 'http://www.qiushibaike.com/text/'
soup = req(url) #解析连接
jieguo = soup.findAll("div",{"class":"content"})
for jieguo_text in jieguo:
print(jieguo_text.get_text())
url = nextlink(soup) #生成下一页连接
connection = pymysql.connect(host='localhost',
user='root',
password='111111',
db='test1',
charset='utf8mb4')
try:
with connection.cursor() as cursor:
for jieguo_text in jieguo:
sql = "insert into `qiushibaike`(`neirong`) values(%s)"
cursor.execute(sql,(jieguo_text,))
connection.commit()
finally:
connection.close();
结果报错是:
Traceback (most recent call last):
File "D:\qiushibaike.py", line 49, in <module>
cursor.execute(sql,(jieguo_text,))
File "D:\Program Files\Python35\lib\site-packages\pymysql\cursors.py", line 164, in execute
query = self.mogrify(query, args)
File "D:\Program Files\Python35\lib\site-packages\pymysql\cursors.py", line 143, in mogrify
query = query % self._escape_args(args, conn)
File "D:\Program Files\Python35\lib\site-packages\pymysql\cursors.py", line 118, in _escape_args
return tuple(conn.literal(arg) for arg in args)
File "D:\Program Files\Python35\lib\site-packages\pymysql\cursors.py", line 118, in <genexpr>
return tuple(conn.literal(arg) for arg in args)
File "D:\Program Files\Python35\lib\site-packages\pymysql\connections.py", line 821, in literal
return self.escape(obj, self.encoders)
File "D:\Program Files\Python35\lib\site-packages\pymysql\connections.py", line 814, in escape
return escape_item(obj, self.charset, mapping=mapping)
File "D:\Program Files\Python35\lib\site-packages\pymysql\converters.py", line 27, in escape_item
val = encoder(val, mapping)
File "D:\Program Files\Python35\lib\site-packages\pymysql\converters.py", line 110, in escape_unicode
return u"'%s'" % _escape_unicode(value)
File "D:\Program Files\Python35\lib\site-packages\pymysql\converters.py", line 73, in _escape_unicode
return value.translate(_escape_table)
TypeError: 'NoneType' object is not callable
目前是可以输出笑话的,但是想把笑话存到mysql里,就会出现上面的报错。有大神能指点一下哪里错了么 |
|