学习进度05(billbill长评爬取02)
今天下雪了,是个看《白色相簿2》的好日子。
昨天我们获取所有长评url,今天要解析这些url获取更多的信息随便,点开一个,我们需要的数据有标题,时间,内容。点赞数和评论先不弄了。
解析json的时候用的正则表达式,这次就用xpath吧。
代码:
from lxml import html
import requests
import csv # 请求头 可自己查看自己的 来更改
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 '
'Safari/537.36 Core/1.70.3741.400 QQBrowser/10.5.3863.400',
'Referer': 'https://www.bilibili.com/bangumi/media/md3516/?spm_id_from=666.25.b_7265766965775f6d6f64756c65.1'
}
# csv文件的头
a = [
'article', 'avatar', 'uname', 'str_url', 'title', 'content'
]
lists = []
lists_w = []
etree = html.etree
with open('a.csv', 'r', encoding='utf-8') as fp:
reader = csv.reader(fp)
# 把第一行消掉
next(fp)
for x in reader:
lists.append(x)
x = 0
while x < len(lists):
print(x)
print(len(lists[x]))
resp = requests.get(lists[x][3])
html = etree.HTML(resp.text)
p = html.xpath("//div[@class='article-holder']//p/text()")
title = html.xpath("//h1[@class='title']/text()")
if len(p) != 0 and len(title) != 0:
list_w = [lists[x][0], lists[x][1], lists[x][2], lists[x][3], title[0], p[0]]
lists_w.append(list_w)
else:
pass
x = x + 1
print(lists_w)
with open('b.csv', 'w', encoding='utf-8', newline='') as fp:
writer = csv.writer(fp)
# 写入表头信息
writer.writerow(a)
writer.writerows(lists_w)
结果截图:
体会:遇到了几个问题,第一个是在谷歌的xpath helper软件里用xpth语言能够找到但是python就不行,后来我用python把整个网页下载下来,发现class属性是不一样的,然后就改了一下xpth语句就成功了,我们使用xpth语句就应对的是requests.get(url)返回的text,需要看text怎么写而不是看原网页的。第二个问题是我昨天爬的那个网页他今天没有了,因为数据就一百多条,我挨个看了一下那个长评的网页没有了,后来在代码加了限定就ok了。
学习进度05(billbill长评爬取02)的更多相关文章
- Java爬虫——网易云热评爬取
爬取目标网址 : http://music.163.com/#/song?id=409649818 需要爬取信息 : 网易云top13热评 使用之前的 HttpURLConnection 获取 ...
- 学习进度04(billbill长评数据提取01)
学习了python写入csv文件自己想了一个小实战,爬取billbill<白色相簿>番剧的长评 网页是动态变化的,往下拉他才会更新出长评,找出关键链接https://api.bilibil ...
- 2019-01-31 Python学习之BFS与DFS实现爬取邮箱
今天学习了python网络爬虫的简单知识 首先是一个爬取百度的按行读取和一次性爬取 逐行爬取 for line in urllib.request.urlopen("http://www.b ...
- python爬虫学习(三):使用re库爬取"淘宝商品",并把结果写进txt文件
第二个例子是使用requests库+re库爬取淘宝搜索商品页面的商品信息 (1)分析网页源码 打开淘宝,输入关键字“python”,然后搜索,显示如下搜索结果 从url连接中可以得到搜索商品的关键字是 ...
- 爬虫学习(四)——post请求爬取
百度翻译爬取数据 import urllib.requestimport urllib.parsepost_url = "https://fanyi.baidu.com/sug"h ...
- Python爬虫学习(5): 简单的爬取
学习了urllib,urlib2以及正则表达式之后就可以做一些简单的抓取以及处理工作.为了抓取方便,这里选择糗事百科的网页作为抓取对象. 1. 获取数据: In [293]: url = " ...
- JavaWeb学习总结-05 Servlet 与页面的交互(02)
一 模拟请求数据 为了测试方便,把请求 json,txt, xml,html格式的文件放到了公网上面,可以通过以下地址请求: http://wx.glab.cn/xpxiaowu4java/json/ ...
- 一起学爬虫——通过爬取豆瓣电影top250学习requests库的使用
学习一门技术最快的方式是做项目,在做项目的过程中对相关的技术查漏补缺. 本文通过爬取豆瓣top250电影学习python requests的使用. 1.准备工作 在pycharm中安装request库 ...
- [python爬虫] Selenium定向爬取虎扑篮球海量精美图片
前言: 作为一名从小就看篮球的球迷,会经常逛虎扑篮球及湿乎乎等论坛,在论坛里面会存在很多精美图片,包括NBA球队.CBA明星.花边新闻.球鞋美女等等,如果一张张右键另存为的话真是手都点疼了.作为程序员 ...
随机推荐
- 浏览器控制台报Cannot read property 'conf' of undefined
原因:JS中有个变量没有类型导致 解决:加上类型即可(我是少写了var)
- Maven项目-Tomcat - 方法无法为jsp编译类ClassFormatException的解决
解决方法:
- Oracle常用命令复习(备考资料)
Oracle期末考试复习资料,大概的总结了常用的命令,不包括基础理论知识,有的不太考的东西没有整理.资料整理是在有道云笔记里完成的,在这里重新编辑太麻烦了,就附个链接了. 文档:Oracle命令复习2 ...
- Python 基础之模块之os os.path 及os与shutil对比
一: os 对系统进行操作 #注:以下操作都在linux环境下操作,且很多运行之前需要做好相关条件import os#(1)system() 在python总执行系统命令#os.system(&quo ...
- 单例设计模式和main方法
设计模式就是在大量的实践中总结和理论之后优选的代码结构.编程风格.以及解决问题的思考方式. 说白了设计模式就是在实际编程中逐渐总结出的解决问题的套路,类似于数学公式. 类的单例设计模式:在开发过程中有 ...
- 从系统引导菜单禁用Hyper-V
1, 从当前引导运行的系统复制一个新引导菜单项: bcdedit /copy {current} /d "Win10 NO_HV" 这时候cmd会输出新引导项的 guid, 复制出 ...
- 网络协议-restful协议
REST Representational State Transfer, 是一种软件架构风格,提供一系列限制指导,用于更好的创建web service. 符合REST 架构风格的web servic ...
- (二)Buildroot介绍
详情请参考: http://www.buildroot.org/downloads/manual/manual.html 参考博客: https://www.cnblogs.com/arnoldlu/ ...
- C#调用Win32 的API函数--User32.dll ----转载
Win32的API函数是微软自己的东西,可以直接在C#中直接调用,在做WinForm时还是很有帮助的.有时候我们之直接调用Win32 的API,可以很高效的实现想要的效果. using System; ...
- java Vector的特点与使用
Vector Vector的数据结构 基于数组,大小可变(数组扩容). Vector与ArrayList的比较 我看了下源码,最大区别就是Vector的方法加了synchronized,是线程安全的 ...