学习Python3爬虫实战:爬取大众点评网某地区所有酒店相关信息,我爬取的北京地区的酒店,由于网站更新,原文中的一些方法已经不再适用,我的工作是在该文指导下重写了一个爬虫。
爬虫无非分为这几块:分析目标、下载页面、解析页面、存储内容,其中下载页面不提。
- 分析目标:如Python3爬虫实战:爬取大众点评网某地区所有酒店相关信息,目的是爬取所有酒店的用户评分信息
- 解析页面:使用正则表达式和BeautifulSoup两种方式,一般情况都可以使用正则表达式,除非需要分辨特定用户的评论。
- 存储内容:酒店信息(id和名称)存储在“hotel_dianping.txt”中,酒店的评分信息存储在“id_name+comments.txt”中
Talk is cheap, show me the code.
#coding=utf-8
import re
import requests
from bs4 import BeautifulSoup
aim_url = "http://www.dianping.com/beijing/hotel"
basic_url = "http://www.dianping.com"
hotel_file = 'hotel_dianping.txt'
def download_page(url):
# 伪装请求头部
# 有了Cookie不怕不让爬
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36',
'Cookie':'_lxsdk_cuid=15eea339434c8-0d2cff6b34e61c-c313760-100200-15eea339434c8; _lxsdk=15eea339434c8-0d2cff6b34e61c-c313760-100200-15eea339434c8; _hc.v=cec4c6d7-039d-1717-70c0-4234813c6e90.1507167802;\
s_ViewType=1; __mta=218584358.1507168277959.1507176075960.1507176126471.5; JSESSIONID=48C46DCEFE3A390F647F52FED889020D; aburl=1; cy=2; cye=beijing; _lxsdk_s=15eea9307ab-17c-f87-123%7C%7C48',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Host':'www.dianping.com'
}
data = requests.get(url, headers=headers).content
# 转换编码
data = data.decode('utf-8')
return data
# 获取并存储酒店信息(