在电影天堂的列表页面,爬取每个链接的子页面中的,电影标题以及下载地址,并用正则表达式匹配出想要的电影类型

源代码获取:

https://github.com/akh5/Python/blob/master/movieparise.py

用爬虫程序我们做到的效果就是从分类页面,跳转到每一个电影的页面内爬取我们想要的信息并存储在数据字典内

这里只储存 标题 和下载连接

实现的结果如下:

from lxml import etree
import requests
import re
BASE_DOMAIN = 'http://dytt8.net'headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}
```python
from lxml import etree
import requests
import re
BASE_DOMAIN = 'http://dytt8.net'headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}

先定义一个根url 方便找到<a>内的href属性后跳转页面,
Headers内是一个存储头部的数据字典,来伪装爬虫程序

主函数:

def spider():base_url="https://www.dytt8.net/html/gndy/dyzz/list_23_1.html"movies = []url = base_urldetail_urls = get_detail_urls(url)for detail_url in detail_urls:movie = parse_detail_page(detail_url)   movies.append(movie)#print(movie)#print(movies)find_what_u_want(movies)

这里只有第一页的爬取,也可以用for循环爬取10页,如下?

def get_detail_urls(url):    respons = requests.get(url,headers=headers)text = respons.texthtml = etree.HTML(text)detail_urls = html.xpath("//table[@class='tbspan']//a/@href")detail_urls = map(lambda url:BASE_DOMAIN+url,detail_urls)return detail_urls

这个函数是找到每一个子页面的url
用的是xpath语法,xpath语法专门用来寻找页面里的标签,相对简单,但是响应却特别慢


这里返回的是子页面的url,具体访问时要加上根url进行字符串拼接

def parse_detail_page(url):movie = {}respons = requests.get(url,headers = headers)text = respons.content.decode('gbk')html = etree.HTML(text)title = html.xpath("//div[@class='title_all']//font[@color='#07519a']/text()")[0]download = html.xpath("//div[@id='Zoom']//a/@href")[0]movie['title'] = titlemovie['download'] = downloadreturn movie

这里的函数就是将子找到子页面中的标题和下载地址,返回一个movie数据字典中,并在主函数中用一个列表接收

还有一个正则表达式的函数
把数据字典列表传入到函数中,然后 根据正则表达式,找到我们想要的内容,比如“悬疑”然后储存到一个列表中

def find_what_u_want(movies):find_out = []for movie in movies:text = movie['title']if(bool(re.search('.+悬疑*',text))):find_out.append(movie)print(find_out)

最后的结果是只找到悬疑类的电影

完整代码:

from lxml import etree
import requests
import re
BASE_DOMAIN = 'http://dytt8.net'headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}def get_detail_urls(url):    respons = requests.get(url,headers=headers)text = respons.texthtml = etree.HTML(text)detail_urls = html.xpath("//table[@class='tbspan']//a/@href")detail_urls = map(lambda url:BASE_DOMAIN+url,detail_urls)return detail_urlsdef parse_detail_page(url):movie = {}respons = requests.get(url,headers = headers)text = respons.content.decode('gbk')html = etree.HTML(text)title = html.xpath("//div[@class='title_all']//font[@color='#07519a']/text()")[0]download = html.xpath("//div[@id='Zoom']//a/@href")[0]movie['title'] = titlemovie['download'] = downloadreturn moviedef find_what_u_want(movies):find_out = []for movie in movies:text = movie['title']if(bool(re.search('.+悬疑*',text))):find_out.append(movie)print(find_out)def spider():base_url="https://www.dytt8.net/html/gndy/dyzz/list_23_1.html"movies = []url = base_urldetail_urls = get_detail_urls(url)for detail_url in detail_urls:movie = parse_detail_page(detail_url)   movies.append(movie)#print(movie)#print(movies)find_what_u_want(movies)
spider()

python爬虫获取电影天堂中电影的标题与下载地址,并用正则表达匹配电影类型相关推荐

  1. Python爬虫获取贴吧中的邮箱

    最近公司正在谈的项目需要用到爬虫,和经理交流后,经理建议我用Python实现.昨天看了会儿Python基本语法后,在电脑上安装了Python 3.7以及编译器PyCharm.今天参考了网上的代码后,根 ...

  2. python爬虫--获取微信投票中所有选手的票数以及其他详情信息

    一.前言 功能:获取微信投票所有选手的信息,绘制成表格. 需要手动操作:因为需要微信登录,所以每十几分钟需要手动换一下token 二.代码 import requests import json fr ...

  3. 用Python爬虫获取百度企业信用中企业基本信息!太厉害了!

    一.背景 希望根据企业名称查询其经纬度,所在的省份.城市等信息.直接将企业名称传给百度地图提供的API,得到的经纬度是非常不准确的,因此希望获取企业完整的地理位置,这样传给API后结果会更加准确.百度 ...

  4. 使用Python爬虫获取豆瓣影评,并用词云显示

    使用Python爬虫获取豆瓣影评,并用词云显示 Python语言流行到现在,目前最受开发者喜爱的功能莫过于它的爬虫功能,以至于很多人以为Python的英语发音也是"爬虫",其实它是 ...

  5. Python爬虫获取简书的用户、文章、评论、图片等数据,并存入数据库

    Python爬虫获取简书的用户.文章.评论.图片等数据,并存入数据库 爬虫定义:网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维 ...

  6. python爬虫获取豆瓣图书Top250

    在上一篇博客<python爬虫获取豆瓣电影TOP250>中,小菌为大家带来了如何将豆瓣电影Top250的数据存入MySQL数据库的方法.这次的分享,小菌决定再带着大家去研究如何爬取豆瓣图片 ...

  7. python Chrome + selenium自动化测试与python爬虫获取网页数据

    一.使用Python+selenium+Chrome 报错: selenium.common.exceptions.SessionNotCreatedException: Message: sessi ...

  8. 域名带后缀_[Python 爬虫]获取顶级域名及对应的 WHOIS Server 及 whoisservers.txt 下载...

    使用 Python 爬虫获取顶级域名及对应的 WHOIS Server 并保存可用于 WhoisCL.exe 的文件 whois-servers.txt. 环境: Windows 10 Python ...

  9. python爬虫获取url_Python爬虫如何获取页面内所有URL链接?本文详解

    如何获取一个页面内所有URL链接?在Python中可以使用urllib对网页进行爬取,然后利用Beautiful Soup对爬取的页面进行解析,提取出所有的URL. 什么是Beautiful Soup ...

最新文章

  1. java转换CSV文件生成xml格式数据
  2. 282021年高考成绩查询方法,往年高考成绩怎么查询 查询成绩的方法
  3. 湖大和厦大计算机专硕6,【图片】一战厦大计算机上岸,经验帖。慢更【考研吧】_百度贴吧...
  4. R语言实战学习笔记-高级数据管理
  5. MicroStation VBA 操作提示
  6. 修改默认的pip版本为对应python2.7
  7. 如何使用原生的 JavaScript 代码,触发 SAP UI5 按钮控件的点击事件处理函数
  8. java web 有哪些标签库_java web中jsp常用标签
  9. Linux用find查找指定文件的操作
  10. H3C s5820v2 堆叠2台机器配置说明
  11. Eclipse is not responding
  12. IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY解决办法
  13. 阿里音乐流行趋势预测大赛一起做-(6)小结
  14. Excel如何破解vba的宏密码
  15. 【Qt】之一些值得关注的博主
  16. 【测试】用例测试设计方法
  17. 大数据可视化多个模板案例(前端)
  18. 微信删除好友后对方还有自己吗?教你找回被删除的那个TA
  19. 跨模态哈希综述(更新中)
  20. 孤独,是为了不辜负每一个懂我的你。

热门文章

  1. Linux大全——Linux系统学习资源合集
  2. 06 RGB和BGR颜色空间
  3. 网络摄像机产品介绍以及学习
  4. TP-LINK如何设置Wifi无线上网短信认证?
  5. SWIFT之殇——针对越南先锋银行的黑客攻击技术初探
  6. ***.http.converter.HttpMessageNotReadableException: I/O error while reading input message; 的解决办法
  7. 《会计信息系统》课程期末复习题与参考答案
  8. 曝英伟达将新发低功耗RTX 3050显卡
  9. python自学-class14(down)-窗口界面的设计基础
  10. xp安全模式下如何修复计算机,电脑怎么进入安全模式,教您xp系统进入安全模式的方法...