【学习笔记】Python爬虫-豆瓣电影所有短评
来源:互联网 发布:大数据国内外研究现状 编辑:程序博客网 时间:2024/06/15 06:03
用到的包:
1.requests获取网页内容(中文api:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html#id2)
2.bs4解析网页(中文api:http://beautifulsoup.readthedocs.io/zh_CN/latest/)
3.pymysql连接数据库存储信息
遇到的问题:
1.bs4可以快速筛选文字
userName = soup.select(‘span.comment-info > a’)可以筛选出网页中<span class="comment-info"><a></a></span>
中的a标签.
此时userName 为列表class ‘list’,其中的内容为class bs4.element.Tag
我们可以通过userName[i].string快速筛选a标签中的文字
完整代码
import requestsfrom bs4 import BeautifulSoupimport reimport pymysqlclass parser(object): def __init__(self): self.comList = [] def start(self): startUrl = 'https://movie.douban.com/subject/1291571/comments?sort=new_score&status=P' html = self.htmlPrase(startUrl) count = 1 while count <= 10: print('正在爬取第 ' + str(count) + ' 页') self.addList(html) nextUrl = self.getNewUrl(html) html = self.htmlPrase(nextUrl) count = count + 1 for com in self.comList: print(com['userName']) print(com['comments']) self.addToDatabase() def htmlPrase(self,url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'} response = requests.get(url, headers=headers) html = response.text return html def addList(self,html): soup = BeautifulSoup(html, 'html.parser') reg = r'<p class="">(.*)' reg = re.compile(reg) comments = re.findall(reg, html) userName = soup.select('span.comment-info > a') length = len(userName) if(length!=0): for i in range(0, length): com = {} com['userName'] = userName[i].string com['comments'] = comments[i] self.comList.append(com) def getNewUrl(self,html): soup = BeautifulSoup(html, 'html.parser') urlParent = soup.find('a', class_='next')['href'] nextUrl = 'https://movie.douban.com/subject/1291571/comments'+urlParent return nextUrl def addToDatabase(self): db = pymysql.connect( host='127.0.0.1', port=3306, user='root', password='root', db='pythontext', charset='utf8' ) cursor = db.cursor() for com in self.comList: cursor.execute("insert into douban(username, comments) VALUE ('{}', '{}')".format(com['userName'], str(com['comments']))) db.commit() db.close()if __name__ == '__main__': parser = parser() parser.start()
阅读全文
0 0
- 【学习笔记】Python爬虫-豆瓣电影所有短评
- python爬虫 登陆豆瓣 爬豆瓣电影短评
- 爬虫笔记-使用python爬取豆瓣短评
- python爬虫 豆瓣电影
- python豆瓣电影爬虫
- Python爬虫豆瓣电影top250
- Java豆瓣电影爬虫——抓取电影详情和电影短评数据
- Python 3.6 爬虫爬取豆瓣《孤芳不自赏》短评
- 使用爬虫爬取豆瓣2016电影榜单中所有电影
- python爬虫,爬豆瓣top250电影
- python爬虫之豆瓣电影评分
- python爬虫之获取豆瓣电影信息
- Python爬虫实例:豆瓣热播电影
- python爬虫获取豆瓣正在热播电影
- [Python爬虫]1.豆瓣电影Top250
- Python爬虫获取豆瓣电影TOP250
- Python爬虫——豆瓣电影Top250
- Python爬虫小案例:豆瓣电影TOP250
- oracle修改表结构(alter table),多列/多字段
- 我的library类型的module集成极验aar包
- RabbitMq、ActiveMq、ZeroMq、kafka之间的比较,,
- CASS地物及地貌的诠释
- 关于java Annotation的总结
- 【学习笔记】Python爬虫-豆瓣电影所有短评
- Spark知识体系
- Android开发WebView报错:Failed to locate a binder for interface: autofill::mojom::PasswordManagerDriver
- 标题栏渐变效果的实现
- 面试常考的常用数据结构与算法
- ERROR_COLLECTION
- android textview 代码设置字体大小包含适配
- python中的条件判断语句
- c语言笔记-2