如网页访问报错,或者无内容,网站反爬限制,请更换代理或者更换网络IP,进行测试。(关注后,上篇文档有代理分享) # 1、抓取单页内容
# 利用requests 请求目标站点,得到单个网页的HTML代码,
# 2.正则表达式分析
# 利用HTML代码分析得到电影的名称。主演,上映时间。评分,图片连接。
# 3.保存到文件。
# 通过文件的形式将结果保存,每一步电影结果json字符
############
import json
import requests
import re
import urllib3
import json
urllib3.disable_warnings()
from requests.exceptions import RequestException # 导入异常处理库
headers = {
'User-Agent': 'Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3'
}
def get_one_page(url): # 定义一个函数,获取一页的内容
try:
response = requests.get(url, headers=headers, verify=False)
response.encoding = 'UTF-8' # 以后爬取显示乱码,添加上
if response.status_code == 200: # 判断网页是否读取正常
return response.text # 返回内容
else:
return None
except RequestException: # 如果出现异常,就退出
return None
def parse_one_page(html):
pattern = re.compile('
+ '.*?integer">https://www.mshxw.com/skin/sinaskin/image/nopic.gif.*?fraction">https://www.mshxw.com/skin/sinaskin/image/nopic.gif.*?
items = re.findall(pattern, html)
for item in items:
yield {'排名': item[0],
'图片': item[1],
'标题': item[2],
'主演': item[3].strip()[3:],
'上映时间': item[4].strip()[5:],
'评分': item[5] + item[6], }
def Write_file(content):
with open('E:猫眼result.txt', 'a', encoding='UTF-8') as f:
f.write(json.dumps(content, ensure_ascii=False) + 'n')
f.close()
def main(offet): # 定义一个函数
url = 'https://maoyan.com/board/4?offset=' + str(offet) # 定义URL
html = get_one_page(url) # 打印网页内容
parse_one_page(html)
for item in parse_one_page(html):
Write_file(item)
if __name__ == '__main__':
for i in range(10):
main(i * 10)



