你好/
你直接点浏览器工具栏里面, 查看, 源代码 就可以看到你当前查看网页的HTML代码了
视频地址一般都在里面 按键盘 Ctrl+F , 看你网页里面要找的内容是什么, 重点搜索 embed, flv, swf, height, width, 都是视频相关的东西
Selector选择器
在Scrapy中,也可以使用BeautifulSoup来解析网页,但是,我们推荐使用Scrapy自带的Selector选择器来解析网页,没别的原因,效率高。Selector选择器有XPath方法和css方法两种选择方法,我使用的是XPath方法。
XPath
XPath 是一门在 XML 文档中查找信息的语言。因为网上的教程有很多,在此处推荐两个,我自己就不多讲了。一个菜鸟教程的XPath文字教程,一个是极客学院的XPath视频教程,后者需要实名认证一下就可以观看,也不麻烦,个人比较推崇后者,老师讲的很易懂。相信我,根据教程只需要半个小时你就能明白XPath,再根据下面我的代码对照巩固一下,你就能掌握它了。
使用Chrome分析网页
我们使用Chrome浏览器(firefox也是类似的)来分析网页,分析我们的XPath该怎么去写,比如说我们现在要分析帖子的标题
右键帖子标题,选择检查
检查
此时,Chrome的调试工具会跳出来,并且自动定位到源代码中我们要检查的元素的位置
检查2
之后根据代码结构我们很轻松的就得出其XPath
//[@id="thread_subject"]/text()
1
其实在某些时候也可以直接右键元素,选择copy xpath,但是这种方法在实践中用处基本为零,因为很难去找出多个网页的共同特质,所以一般情况下我们还是要自己去分析。
自动生成
在这里有必要提醒一个神坑,在下面代码中也有体现,详见我从前写的这篇文章Scrapy匹配xpath时tbody标签的问题
这个坑给我的启示是,当发现了感觉不能用科学解释的错误的时候,就检查一下获取到的源代码吧!
代码
不说废话了,直接上代码。
首先,修改itemspy文件,定义好我们要提取的内容
# -- coding: utf-8 --
import scrapy
class HeartsongItem(scrapyItem):
title = scrapyField() # 帖子的标题
url = scrapyField() # 帖子的网页链接
author = scrapyField() # 帖子的作者
post_time = scrapyField() # 发表时间
content = scrapyField() # 帖子的内容
然后来到heartsong_spiderpy,编写爬虫
# -- coding: utf-8 --
# import scrapy # 可以写这句注释下面两句,不过下面要更好
from scrapyspiders import Spider
from scrapyselector import Selector
from heartsongitems import HeartsongItem # 此处如果报错是pyCharm的原因
class HeartsongSpider(Spider):
name = "heartsong"
allowed_domains = ["heartsongtop"] # 允许爬取的域名,非此域名的网页不会爬取
start_urls = [
">
chrome出了headless浏览器,无头就是没有界面,据说出了这东西后phantomjs都宣布停止更新了,不过phantomjs还是能用的,也是headless浏览器。要不直接上selenium+chrome也行
1使用beautifulsoup框架。
from bs4 import BeautifulSoupbs = BeautifulSoup('网页源码', "htmlparser")
bsfindAll('a') # 查找所有的超链接
# 具体方法可以参见官方文档
2使用正则表达式
如果你的网站页面经常更新,爬虫就会更加频繁的访问页面,优质的内容更是爬虫喜欢抓取的目标,尤其是原创内容。
如果你做了许多努力仍没有被爬虫抓取,可以看一下老渔哥给出的两点建议:
1、不建议站点使用js生成主体内容,如过js渲染出错,很可能导致页面内容读取错误,页面则无法被爬虫抓取。
2、许多站点会针对爬虫做优化,建议页面长度在128k之内,不要过长。
以上就是关于网页隐藏了一个链接,能不能有办法进去全部的内容,包括:网页隐藏了一个链接,能不能有办法进去、尝试用scrapy提取网页中的网址、Python爬虫是如何获取JS、生成URL和网页内容的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)