《初涉爬虫》
来源:互联网 发布:淘宝实名认证怎么弄 编辑:程序博客网 时间:2024/06/05 05:18
今天刚看了崔老师的教程,模仿一下《爬取猫眼电影榜前100》。
开始,最简单的requests库请求网页,这个没毛病。没想到居然遇到了教程上没有的问题。禁止访问。
我知道爬虫爬取网页的时候会出现这种情况。知识没想到,就这样出现了。机智的我回忆了一下,好像可以试一下添加headers。
import requestsdef get_web(url): headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) \ AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'} response = requests.get(url, headers=headers) return response.text
哈哈,居然成了!
继续。得到这个网页之后,下面用正则表达式来解析这段html代码,得到我们想要的,电影名,排行,评分等等。
就拿第一个霸王别姬举例。
我们要的信息就在红框部分。下面用正则表达式去匹配我们想要的。
'<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?"star">\(.*?)</p>.*?"releasetime">(.*?)</p>.*?"integer">(.*?)</i>.*?"fraction">(\d+)</i>.*?</dd>'
括号里面的就想当时红框里面想要的信息。然后用正则表达式来解析。
def compile(html): pattern = re.compile('<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?"star">\(.*?)</p>.*?"releasetime">(.*?)</p>.*?"integer">(.*?)</i>.*?"fraction">(\d+)</i>.*?</dd>', re.S) items = re.findall(pattern, html) return items得到了这些东西。就代表可以了。
然后给它整理一下输出。
这里输出的顺序和我设置的不一样,原教程里面使用了yield生成器,我现在不是很懂,估计和这个有关吧。最后就是一页一页的爬取,传入下一个网址就可以了。我还是比较菜,要多多联系,特别是写这个正则表达式,很不自信。(为啥我的截图的都挂了T_T)
阅读全文
0 0
- Java 爬虫初涉
- 《初涉爬虫》
- web 爬虫初体验
- 爬虫
- 爬虫
- 爬虫
- 爬虫
- 爬虫
- 爬虫
- 爬虫
- 爬虫
- 爬虫
- 爬虫
- 爬虫
- 爬虫
- 爬虫
- 爬虫
- 爬虫
- Mybatis_mybatis常用jdbcType数据类型
- myBatis-1
- sdnu1071
- pandas行列传播运算
- 推荐 | CVPR2017关于如何解释深度学习模型的讲座(附视频与PPT)
- 《初涉爬虫》
- 迭代器模式学习和理解
- JPA OneToMany级联更新 及 orphanRemoval = true 说明
- HDU 1418-抱歉
- 讨好型人格,有哪些错误逻辑?
- ERROR: value for column "imgfile" exceeds pagesize 1048576! (seg78 192.168.2.7:40000 pid=487967)
- winform判断窗体是否已打开
- 一维数组的创建及使用
- NDK在android studio里的位置