使用Python爬取动态网页,获取评论
python2.7.15
酒店的评论都在js文件中它们连着数据库,是动态加载的,找到js文件的URL和它们的规律,爬取就成功了一半。
我获取了评论中的五项,这五项中有的可能没有,因为是在字典中取值,如果没有的话会报错,说没有该键,所以在查找和写入的时候要加一个try-except,如果有就获取并写入,如果没有就赋值none
headers字典和data字典是必须的,从自己浏览器里找,
F12或右键审查元素。
代码如下
# coding=utf-8
import urllib2
import re
import MySQLdb
import json
import requests
conn=MySQLdb.connect(host="127.0.0.1",user="root",passwd="199855pz",db="pz",charset='utf8')
print '连接成功'
cursor = conn.cursor()
cursor.execute("DROP TABLE IF EXISTS yilong")
sql = '''CREATE TABLE yilong(姓名 char(10) ,评价 char(100) ,商品 char(10) ,日期 char(10) ,评分 char(10))'''
cursor.execute(sql)
def hotelname(shoplist,n):
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
nameurl = "http://hotel.elong.com/" + shoplist[n] + "/"
request = urllib2.Request(nameurl, headers=header)
response = urllib2.urlopen(request)
cont = response.read()
pattern = re.compile('<title>【(.*?)】地址:.*?艺龙旅行网</title>')
name = re.findall(pattern, cont)
name = name[0]
print