今天是个值得纪念了日子,我终于在博客园上发表自己的第一篇博文了。作为一名刚刚开始学习python网络爬虫的爱好者,后期本人会定期发布自己学习过程中的经验与心得,
希望各位技术大佬批评指正。以下是我自己做的一个小爬虫,用到了爬虫的基本知识requests库+正则表达式库,最后将爬取到的结果存入日志result.txt,推荐给刚刚开始学习的小白们,
学不可以已,积土成山,风雨兴焉,希望我们共同进步!

1 #author: "xian"
#date: 2018/5/2
import requests #导入requests库
from requests.exceptions import RequestException #导入异常处理模块 具体见官网
import re #导入re模块
import json #导入json模块
  #import def get_one_page(url): #获取单个页面,RequestException用来捕获异常
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36', } #maoyan要求headers
try:
response = requests.get(url,headers = headers)
if response.status_code == 200:
return response.text
else:
return None
except RequestException:
return None def parse_one_page(html): #利用正则解析单个页面
pattern = re.compile('<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)"'
+'.*?name"><a.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>'
+'.*?integer">(.*?)</i>.*?fraction">(\d+)</i>.*?</dd>',re.S) #生成一个正则表达式对象供后面调用 items = re.findall(pattern,html)
for item in items:
yield {
'index':item[0],
'image':item[1],
'title':item[2],
'authors':item[3].strip()[3:],
'time':item[4].strip()[5:],
'rating':item[5] + item[6], }
 1 def write_to_file(content):#写入日志result.txt,其中encoding 和 ensure_ascii 解决编码问题,当然你也可以使用codecs模块
with open('result.txt','a',encoding='utf8') as f:
f.write(json.dumps(content,ensure_ascii=False) +'\n')#json.dumps为了将内容转成json字符串
f.close() def main():#主函数
url = 'http://maoyan.com/board'
html = get_one_page(url)
for item in parse_one_page(html):
print(item)
write_to_file(item) if __name__ == '__main__':
main()#解决战斗,妈妈再也不用担心我的学习了!

部分运行效果图:

(python3爬虫实战-第一篇)利用requests+正则抓取猫眼电影热映口碑榜的更多相关文章

  1. PYTHON 爬虫笔记八:利用Requests+正则表达式爬取猫眼电影top100(实战项目一)

    利用Requests+正则表达式爬取猫眼电影top100 目标站点分析 流程框架 爬虫实战 使用requests库获取top100首页: import requests def get_one_pag ...

  2. Python爬虫【三】利用requests和正则抓取猫眼电影网上排名前100的电影

    #利用requests和正则抓取猫眼电影网上排名前100的电影 import requests from requests.exceptions import RequestException imp ...

  3. Python爬虫之requests+正则表达式抓取猫眼电影top100以及瓜子二手网二手车信息(四)

    requests+正则表达式抓取猫眼电影top100 一.首先我们先分析下网页结构 可以看到第一页的URL和第二页的URL的区别在于offset的值,第一页为0,第二页为10,以此类推. 二.< ...

  4. 使用Request+正则抓取猫眼电影(常见问题)

    目前使用Request+正则表达式,爬取猫眼电影top100的例子很多,就不再具体阐述过程! 完整代码github:https://github.com/connordb/Top-100 总结一下,容 ...

  5. requests+正则爬取猫眼电影前100

    最近复习功课,日常码农生活. import requests from requests.exceptions import RequestException import re import jso ...

  6. requests库爬取猫眼电影“最受期待榜”榜单 --网络爬虫

    目标站点:https://maoyan.com/board/6 # coding:utf8 import requests, re, json from requests.exceptions imp ...

  7. Requests+正则表达式抓取猫眼电影TOP100

    spider.py # -*- coding:utf-8 -*- import requests import re import json import codecs from requests.e ...

  8. python学习(23)requests库爬取猫眼电影排行信息

    本文介绍如何结合前面讲解的基本知识,采用requests,正则表达式,cookies结合起来,做一次实战,抓取猫眼电影排名信息. 用requests写一个基本的爬虫 排行信息大致如下图 网址链接为ht ...

  9. 用requests库爬取猫眼电影Top100

    这里需要注意一下,在爬取猫眼电影Top100时,网站设置了反爬虫机制,因此需要在requests库的get方法中添加headers,伪装成浏览器进行爬取 import requests from re ...

随机推荐

  1. Dynamics CRM 安装Microsoft Dynamics CRM Reporting Extensions

    在装完CRM Server 后这个组件是必须安装的,但今天由于我的大意在客户安装生产环境时,告诉客户这个组件装在APP服务器上,导致客户安装时 SSRSInstance怎么都是空的,害的人家找了半天原 ...

  2. FORM级别和数据库级别的Trace

     metalink上的文章较全的,中文的可参考我的博客EBS开发技术之trace http://blog.csdn.net/cai_xingyun/article/details/17250971 ...

  3. UITableView如何撤销移动操作

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们知道使用UITableView的委托方法canMoveRo ...

  4. python 多进程 logging:ConcurrentLogHandler

    python 多进程 logging:ConcurrentLogHandler python的logging模块RotatingFileHandler仅仅是线程安全的,如果多进程多线程使用,推荐 Co ...

  5. Socket实现聊天客户端

    今天在极客学院上看到了一个关于Socket的视频讲解,感觉还不错,就写了份代码,拿来分享一下. Socket使用方法 关于Socket的使用,我们首先要弄清楚的是,在服务器端还是在客户端使用.因为这的 ...

  6. CSDN专访:大数据时代下的商业存储

    原文地址:http://www.csdn.net/article/2014-06-03/2820044-cloud-emc-hadoop 摘要:EMC公司作为全球信息存储及管理产品方面的领先公司,不久 ...

  7. PHP(PHP-FPM)手动编译安装

    1安装PHP 1.1下载解压 wget http://museum.php.net/php5/php-5.3.5.tar.gz tarxzvf php-5.3.5.tar.gz cdphp-5.3.5 ...

  8. L​i​n​u​x​下​配​置​T​o​m​c​a​t

    ***安装***   安装JDK chmod a+x jdk-1_5_0_06-linux-i586-rpm.bin ./jdk-1_5_0_06-linux-i586-rpm.bin 敲几次空格就O ...

  9. Device Tree Usage(理解DTS文件语法)

    Basic Data Format The device tree is a simple tree structure of nodes and properties. Properties are ...

  10. 【翻译】如何在Ext JS 6中使用Fashion美化应用程序

    原文:How to Style Apps with Fashion in Ext JS 6 在Ext JS 6,一个最大的改变就是框架合并,使用一个单一的代码库,就可以为每一种设备开发各具有良好体验的 ...