参考网址:https://zhuanlan.zhihu.com/p/32037625

  1. def getOneMoviesInfo(Mid,url):
  2. import requests
  3. from lxml import etree
  4. #print(url)
  5. data = requests.get(url).text #download the website
  6. s = etree.HTML(data) #analyse data
  7. picture = s.xpath('//*[@id="main"]/section/div[1]/div/div/section/div[1]/div[1]/img/@src')
  8. if len(picture)== 0:
  9. picture = 'NULL'
  10. #longPicture = s.xpath('//*[@id="media_v4"]/div[2]/div[1]/div/div/section[3]/div[2]/div/div[1]/img/@src')
  11. name = s.xpath('//*[@id="main"]/section/div[1]/div/div/section/div[2]/section/div[1]/span/a/h2/text()')
  12. if len(name)==0:
  13. print("Mid = %s , failed for a lack of TMDB id "%Mid)
  14. return
  15. name = s.xpath('//*[@id="main"]/section/div[1]/div/div/section/div[2]/section/div[1]/span/a/h2/text()')[0]
  16. year = s.xpath('//*[@id="main"]/section/div[1]/div/div/section/div[2]/section/div[1]/span/span/text()')[0].strip("(").strip().strip(")")
  17. date = s.xpath('//*[@id="media_v4"]/div[2]/div[2]/div/section/div[1]/div/section[1]/ul/li[1]/text()')[1].strip()
  18. brief = s.xpath('//*[@id="main"]/section/div[1]/div/div/section/div[2]/section/div[2]/div/p/text()')[0].replace("\n","\\n")
  19. mainCreators =s.xpath('//*[@id="main"]/section/div[1]/div/div/section/div[2]/section/div[2]/ol/li') #all main creators array
  20. writers = []
  21. director = "NULL"
  22. for div in mainCreators:
  23. if len(div.xpath('./p[1]/a/text()'))== 0:
  24. director = 'NULL'
  25. writers = ['NULL','NULL','NULL']
  26. else:
  27. creatorName = div.xpath('./p[1]/a/text()')[0]
  28. #print(creatorName)
  29. creatorProfession = div.xpath('./p[2]/text()')[0]
  30. #print(creatorProfession)
  31. if 'Director' in creatorProfession:
  32. director = creatorName
  33. elif 'Screenplay' in creatorProfession or 'Writer' in creatorProfession:
  34. writers.append(creatorName)
  35. stars = []
  36. starsData = s.xpath('//*[@id="media_v4"]/div[2]/div[1]/div/div/section[1]/ol/li')
  37. for div in starsData:
  38. star = div.xpath('./p[1]/a/text()')
  39. if len(star)== 0:
  40. stars == ["NULL","NULL","NULL"]
  41. else:
  42. star = star[0]
  43. stars.append(star)
  44. writerslen = len(writers)
  45. starslen=len(stars)
  46. for i in range(writerslen,3):
  47. writers.append("NULL");
  48. for i in range(starslen,5):
  49. stars.append("NULL");
  50. with open(r'C:\Users\yuqiao\Desktop\testSpider.txt','a',encoding='utf-8') as f:
  51. f.write("{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}\n".format(Mid,name,brief,year,date,director,
  52. writers[0],writers[1],writers[2],
  53. stars[0],stars[1],stars[2],stars[3],stars[4],
  54. picture))
  55. print(Mid)
  56. print(name)
  57. #______________________________________________________主函数__________________________________________________________
  58. import time
  59. with open(r'C:\Users\yuqiao\Desktop\testSpider.txt','w',encoding='utf-8') as f:
  60. f.write("")
  61. language = '?language=zh-CN' #######################
  62. with open(r'D:\git\ZiyeMovie\MidURL.txt', "rt",encoding='utf-8') as in_file:
  63. all = in_file.read()
  64. lines = all.split("\n")
  65. #for i in range(51,61): 51~60
  66. for i in range(9124,9125):
  67. line = lines[i]
  68. print(line)
  69. print('finished')

python 爬虫示例,方便日后参考的更多相关文章

  1. Python爬虫示例

    #!/usr/bin/python #coding:utf8 import re import urllib def gethtml(url): page=urllib.urlopen(url) ht ...

  2. Python爬虫之爬取淘女郎照片示例详解

    这篇文章主要介绍了Python爬虫之爬取淘女郎照片示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 本篇目标 抓取淘宝MM ...

  3. 十个Python爬虫武器库示例,十个爬虫框架,十种实现爬虫的方法!

    一般比价小型的爬虫需求,我是直接使用requests库 + bs4就解决了,再麻烦点就使用selenium解决js的异步 加载问题.相对比较大型的需求才使用框架,主要是便于管理以及扩展等. 1.Scr ...

  4. python爬虫:XPath语法和使用示例

    python爬虫:XPath语法和使用示例 XPath(XML Path Language)是一门在XML文档中查找信息的语言,可以用来在XML文档中对元素和属性进行遍历. 选取节点 XPath使用路 ...

  5. python爬虫之多线程、多进程+代码示例

    python爬虫之多线程.多进程 使用多进程.多线程编写爬虫的代码能有效的提高爬虫爬取目标网站的效率. 一.什么是进程和线程 引用廖雪峰的官方网站关于进程和线程的讲解: 进程:对于操作系统来说,一个任 ...

  6. python爬虫构建代理ip池抓取数据库的示例代码

    爬虫的小伙伴,肯定经常遇到ip被封的情况,而现在网络上的代理ip免费的已经很难找了,那么现在就用python的requests库从爬取代理ip,创建一个ip代理池,以备使用. 本代码包括ip的爬取,检 ...

  7. 教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神

    本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http://www.xiaohuar.com/,让你体验爬取校花的成就感. Scr ...

  8. [Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍

    前三篇文章介绍了安装过程和通过Selenium实现访问Firefox浏览器并自动搜索"Eastmount"关键字及截图的功能.而这篇文章主要简单介绍如何实现自动登录163邮箱,同时 ...

  9. [Python爬虫] scrapy爬虫系列 <一>.安装及入门介绍

    前面介绍了很多Selenium基于自动测试的Python爬虫程序,主要利用它的xpath语句,通过分析网页DOM树结构进行爬取内容,同时可以结合Phantomjs模拟浏览器进行鼠标或键盘操作.但是,更 ...

随机推荐

  1. set和get方法

    package day02; public class Person { /**为了封装,一般的属性都设置成为private(私有的),所以你无法用 .属性 的方式来得到属性值, * 因此此时用两个p ...

  2. Hibernate3中重复引用hbm文件错误信息记录

    Hibernate3中重复引用hbm文件错误信息记录. 八月 ::, ERROR - Context initialization failed org.springframework.beans.f ...

  3. java实现九九乘法表

    public class Demo { public static void main(String[] args) { for (int i = 1; i < 10; i++) {      ...

  4. 数组声明的几种方式以及length属性

    声明一: int[] arr=new int[10]; for(int i=0;i<arr.length;i++){ arr[i]=i; } 声明二: int[] arr2={1,2,3}; 声 ...

  5. 445 Add Two Numbers II 两数相加 II

    给定两个非空链表来代表两个非负整数.数字最高位位于链表开始位置.它们的每个节点只存储单个数字.将这两数相加会返回一个新的链表.你可以假设除了数字 0 之外,这两个数字都不会以零开头.进阶:如果输入链表 ...

  6. rhel7安装oracle 11gR2

    一.修改操作系统核心参数 在Root用户下执行以下步骤: 1)修改用户的SHELL的限制,修改/etc/security/limits.conf文件 输入命令:vi /etc/security/lim ...

  7. 12.1Java-构造方法

    一.构造方法 作用:在new的同时对成员变量赋值,给对象的属性初始化赋值格式:权限 方法名(参数列表){}方法的名字,必须和类的名字完全一致,大小写一致构造方法不许写返回值类型,如void,int 构 ...

  8. svn 使用手册

    版本控制器:SVN 1 开发中的实际问题 1.1 小明负责的模块就要完成了,就在即将Release之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月来的努力付之东流——需求之一:备份! 1.2 这个项目 ...

  9. 浅析套接字中SO_REUSEPORT和SO_REUSEADDR的区别

    Socket的基本背景 在讨论这两个选项的区别时,我们需要知道的是BSD实现是所有socket实现的起源.基本上其他所有的系统某种程度上都参考了BSD socket实现(或者至少是其接口),然后开始了 ...

  10. php(三)使用PDO链接数据库

    1.启动 mysql数据库,打开图形化控制界面 2.新建一个数据库 3.创建一个数据表 4.给数据表添加数据 id是数字类型的  类型选择int长度 11 username 等其他数据  会是字符串形 ...