1. import requests
  2. from requests.exceptions import RequestException
  3. import re
  4. import json
  5.  
  6. def get_one_page(url):
  7. try:
  8. headers = {
  9. 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/'
  10. + '535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1'
  11. }
  12. response = requests.get(url, headers=headers)
  13. response.encoding = 'gb2312'
  14. if response.status_code == 200:
  15. return response.text
  16. return None
  17. except RequestException:
  18. return None
  19.  
  20. def parse_one_page(html):
  21. pattern = re.compile(
  22. '<li>.*?target.*?src="(.*?)".*?<h2>.*?title.*?>(.*?)</a>'
  23. + '</h2>.*?</span><span>(.*?)</span>.*?>(.*?)</p>.*?</li>', re.S)
  24. items = re.findall(pattern, html)
  25. #print(items)
  26. for item in items:
  27. yield {
  28. 'image': item[0],
  29. 'title': item[1],
  30. 'type': item[2],
  31. 'introduction': item[3]
  32. }
  33.  
  34. def write_to_file(content):
  35. with open('Yinghua.json', 'a', encoding='utf-8') as f:
  36. f.write(json.dumps(content, ensure_ascii=False) + '\n')
  37.  
  38. def main(page):
  39. num = (page - 1) * 12 + 1
  40. url = '×××page=' + str(page) + '×××'
  41. html = get_one_page(url)
  42. #print(html)
  43. for item in parse_one_page(html):
  44. print(num)
  45. print(str(item) + '\n')
  46. item = str(num) + str(item)
  47. write_to_file(item)
  48. num += 1
  49.  
  50. if __name__ == '__main__':
  51. for i in range(1, 398):
  52. main(page=i)

requests 抓取网站的更多相关文章

  1. 抓取网站数据不再是难事了,Fizzler(So Easy)全能搞定

    首先从标题说起,为啥说抓取网站数据不再难(其实抓取网站数据有一定难度),SO EASY!!!使用Fizzler全搞定,我相信大多数人或公司应该都有抓取别人网站数据的经历,比如说我们博客园每次发表完文章 ...

  2. 使用PHP抓取网站ico图标

    网站许久没用更新,以后会经常更新,本次分享一个使用PHP抓取网站ico的程序,提供一个网站列表后对网站的ico进行下载抓取,具体代码如下: <?php /** * 更新热站ico * gao 2 ...

  3. python requests抓取NBA球员数据,pandas进行数据分析,echarts进行可视化 (前言)

    python requests抓取NBA球员数据,pandas进行数据分析,echarts进行可视化 (前言) 感觉要总结总结了,希望这次能写个系列文章分享分享心得,和大神们交流交流,提升提升. 因为 ...

  4. Python入门-编写抓取网站图片的爬虫-正则表达式

    //生命太短 我用Python! //Python真是让一直用c++的村里孩子长知识了! 这个仅仅是一个测试,成功抓取了某网站1000多张图片. 下一步要做一个大新闻 大工程 #config = ut ...

  5. 【转】详解抓取网站,模拟登陆,抓取动态网页的原理和实现(Python,C#等)

    转自:http://www.crifan.com/files/doc/docbook/web_scrape_emulate_login/release/html/web_scrape_emulate_ ...

  6. 利用wget 抓取 网站网页 包括css背景图片

    利用wget 抓取 网站网页 包括css背景图片 wget是一款非常优秀的http/ftp下载工具,它功能强大,而且几乎所有的unix系统上都有.不过用它来dump比较现代的网站会有一个问题:不支持c ...

  7. 【源码】Python3使用Requests抓取和检测电光代理API,并查询ip代理是否成功

    电光代理成立后,做一篇笔记,记录我使用Requests抓取和测试电光代理的方法 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做 ...

  8. 搜索会抓取网站域名的whoise信息吗

    http://www.wocaoseo.com/thread-309-1-1.html 网站是否在信产部备案,这是不是会成为影响网站收录和排名的一个因素?百度是否会抓取域名注册人的相关whois信息吗 ...

  9. python抓取网站提示错误ssl.SSLCertVerificationError处理

    python在抓取制定网站的错误提示:ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify ...

随机推荐

  1. Chrome console不输出内容

    设置成info就好了

  2. react+laravel与服务端渲染的几点思考

    一.前后端完全分离 1.用React.js做MVC中的V,剩下的交给Laravel 2.Laravel用来做API接口开发. 3.好处:实现了前后端开发的分离,从而加快前后端开发效率.另外若是多端的如 ...

  3. Node安装配置

    下载安装nodejs后进行如下配置: 修改模块安装位置和缓存位置在要存放的位置手动新建全局目录node_global在要存放的位置手动新建缓存目录node_cache执行如下命令:npm config ...

  4. Java集合(7):散列与散列码

    散列的价值在于速度.我们使用数组来保存键的信息,这个信息并不是键本身,而是通过键对象生成一个数字(散列码),作为数组下标.由于数组的容量是固定的,而散列容器的大小是可变的,所以不同的键可以产生相同的数 ...

  5. window 10 安装vs2013启动web项目报错Id端口不能启动iis

    https://www.cnblogs.com/leolion/p/3789732.html 如果我们想在Visual Studio2013上调试64位ASP.NET MVC的网站(本机环境X64), ...

  6. java中,有关移位运算符的有关讨论

    java中有三种移位运算符 <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >& ...

  7. 【CodeForces - 682C】Alyona and the Tree(dfs)

    Alyona and the Tree Descriptions 小灵决定节食,于是去森林里摘了些苹果.在那里,她意外地发现了一棵神奇的有根树,它的根在节点 1 上,每个节点和每条边上都有一个数字. ...

  8. 安装gnocchi

    在控制节点上执行 #!/bin/bash MYSQL_ROOT_PASSWD='m4r!adbOP' GNOCCHI_PASSWD='gnocchi1234!' CEILOMETER_PASSWD=' ...

  9. APP安全_Android反编译

    反编译 Android的反编译工具:apktool,JEB等. Apk 文件的结构,如下: META-INF:签名文件 res:资源文件,里面的 xml 格式文件在编译过程中由文本格式转化为二进制的 ...

  10. web安全checklist

    web安全漏洞场景分析 输入输出检验不充分 设计缺陷 环境缺陷