<script type="application/ld+json">
"@context": "https://ziyuan.baidu.com/contexts/cambrian.jsonld",
"@id": "https://www.zhihu.com/question/30737616",
"appid": "否",
"pubDate": "2015-05-28T08:48:48",
"upDate": "2016-06-07T11:43:49"
}</script>
比如要获取pubDate的值,可以通过如下方式实现:
pubDate=json.loads(bs.find('script', {'type': 'application/ld+json'}).get_text())["pubDate"]
也就是要用到json库,通过find()以及get_text()获取标签整体内容,为字符串格式。将此字符串传递给json.loads()即可得到一个字典对象,再通过["键"]的方式即可得到对应的值
上面对应的输出结果如下
&lt;script type="application/ld+json"&gt; { "@context": "https://ziyuan.baidu.com/contexts/cambrian.jsonld", "@id": "https://www.zhihu.com/question/30737616",
import
BeautifulSoup
soup =
BeautifulSoup
.
BeautifulSoup
(html)
利用这个包先把html里
script
,style给清理了:
[
script
.extract() for
script
in soup.findAll(‘
script
’)]
[style.extract() for style in soup.findAll(‘style’)]...
在上一篇中我们利用正则表达式和一些简单的操作爬取链家二手房的100个网页信息,这篇我们引入BeatifulSoup库来简化工作量,Beautiful Soup 是一个可以从HTML或XML文件中提取数据的
Python
库,我们可以通过BeatifulSoup文档来学习相关操作。下面是利用BeatifulSoup库来实现上一篇功能的代码。
import urllib2
import time
<!-- This is the example.html example file. -->
<head><title>The Website Title</title></head>
<p>Download m
app移动端没有后台数据,没办法自己写呗,凑合着用,日子凑合着过,慢慢开始爬虫了
这是一个
python
scrapy项目,具体关于scrapy的知识自己扩展
首先来一张自己稍稍总结的导图:
代码不做过多解释
功能:
获取
动态申请数据的url
class HomeNewsSpidersSpider(scrapy.Spider):
name = 'home_news_spiders'
针对部分无法
获取
数据,在xpath语句中使用“descendant-or-self::text()”,即可
获取
同级及下级的信息
个人常用xpath爬虫格式:
import requests
from lxml import etree
from fake_useragent import UserAgent
import urllib
from xlrd import open_workbook
from xlutils.copy import copy
#设置headers
ua = UserAgent
遇到问题:
资料调研过程中遇到js动态生成页面(在检查中可以看到需要爬取的数据,但是查看网页源代码中都是js动态生成,跟检查中的代码不一致),通过xpath在html中
获取
不到需要的数据,真正的数据在
所需要的数据为
script
中的var indData,数据类型为包含有许多dict的list
解决办法:
可以通过正则在
script
标签
中截取数据,然后转化为json格式的数据。
代码如下:
#此处模拟
获取
到的html的text