爬虫流程

  1. 定义url,伪造headers
  2. 请求数据
  3. 解析数据
  4. 提取数据
  5. 持久化保存

实例

import requests
from lxml import etree
import time
import csv# 1,定义url,伪造headers
url = "https://fm.qq.com/category/39087_38979"
headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36"
}# 2,请求数据
response = requests.get(url=url,headers=headers).text
# 3,解析数据
tree = etree.HTML(response)
html_li = tree.xpath('//*[@id="j-album-list"]/li')with open('糗百.csv', 'w', encoding='gbk', newline='') as f:         # 创建文件对象(指定文件名,模式,编码方式)csv_writer = csv.writer(f)                      # 基于文件对象构建 csv写入对象csv_writer.writerow(["标题", "图片url", "内容"])  # 构建列表头for li in html_li:time.sleep(0.5)# 4,提取数据title = li.xpath('./div[2]/div/div[1]/a/text()')[0]image_url = li.xpath('./div[1]/img/@src')[0]content = li.xpath('./div[2]/div/div[2]/text()')[0]# 5、写入数据csv_writer.writerow([title, image_url, content])    # 写入csv文件内容print('写入成功:{0}'.format(title))
f.close()   # 关闭文件

文件预览

总结:

我在本次爬取数据中遇到过两个问题。

第一个问题是打印的时候没有乱码,但保存在文件中打开的时候中文乱码了

解决方法是在open函数中增加了这个属性 encoding="gbk",如果不行的话可以试一下其他编码方式,中文编码常用的有 gbk、gb2312、utf-8。多试试总有一个可以,如果是打印的时候乱码了就得在请求后面加行代码  encoding = "gbk"  (网页源码head标签中的charset属性决定编码方式)

第二个问题是保存在csv文件的时候每行之间有空行

解决方法是在open函数中增加这个属性  newline=""        (空串)

打卡第58天,对python大数据感兴趣的朋友欢迎一起讨论、交流,请多指教!

requests模块爬取糗事百科用xpath解析相关推荐

  1. 利用Python爬取糗事百科段子信息

    文章来源:公众号-智能化IT系统. 爬虫技术目前越来越流行,这里介绍一个爬虫的简单应用. 爬取的内容为糗事百科文字内容中的信息,如图所示: 爬取糗事百科文字35页的信息,通过手动浏览,以下为前四页的网 ...

  2. 读书笔记(4)——python爬取糗事百科,并存到MySQL中

    2019独角兽企业重金招聘Python工程师标准>>> 安装MySQL.使用phpStudy集成工具来安装MySQL服务器,或者可以用USBwebserve进行安装. 打开USBwe ...

  3. python3 爬虫之爬取糗事百科

    闲着没事爬个糗事百科的笑话看看 python3中用urllib.request.urlopen()打开糗事百科链接会提示以下错误 http.client.RemoteDisconnected: Rem ...

  4. python实现数据爬取——糗事百科爬虫项目

    python实现数据爬取--糗事百科爬虫项目 # urllib.request 请求模块 import urllib.request # re 模块使 Python 语言拥有全部的正则表达式功能. i ...

  5. 【Python爬虫系列教程 28-100】小姐姐带你入门爬虫框架Scrapy、 使用Scrapy框架爬取糗事百科段子

    文章目录 Scrapy快速入门 安装和文档: 快速入门: 创建项目: 目录结构介绍: Scrapy框架架构 Scrapy框架介绍: Scrapy框架模块功能: Scrapy Shell 打开Scrap ...

  6. Python爬虫学习笔记 -- 爬取糗事百科

    Python爬虫学习笔记 -- 爬取糗事百科 代码存放地址: https://github.com/xyls2011/python/tree/master/qiushibaike 爬取网址:https ...

  7. 爬取糗事百科图片(正则案例)

    首先前面来到糗事百科中的热图页面.然后右键检查打开浏览器的抓包工具,如下图所示: 通过对请求headers与响应response与element的分析,我们可以了解到图片链接就在该地址栏的网址下的di ...

  8. 爬虫爬取糗事百科图片数据

    如图,爬取所有图片,不包含文字 通过抓包工具可知每一张图片所在div的class="thumb",利用正则表达式 ex = '<div class="thumb&q ...

  9. python如何爬取糗事百科

    所需要引入的库,python版本号不同,加入#coding=gbk,避免正文中出现中文时报错. 爬取的内容,跟路径在开发者模式中选择 包裹的内容. 现在我们想获取发布人,发布日期,段子内容,以及点赞的 ...

最新文章

  1. 一款基于jquery和css3的头像恶搞特效
  2. python一个月能挣多少钱-零基础学python,我可以让你一个月上手做项目!
  3. 新地王的诞生终将付出惨痛的代价?
  4. 黑马程序员.bobo.DAY.2
  5. python3.6.0安装步骤
  6. 【BZOJ - 3993】星际战争(网络流最大流+二分)
  7. 【python】ssh密码字典攻击
  8. aac,ogg等音频测试文件下载地址
  9. Xshell上传文件
  10. C# 设计模式:创建型
  11. 苹果企业证书发布ipa,使用gitee存放plist文件
  12. 【关于NI CAN USB-8473在实际应用中的案例分析】
  13. vue-cli通过symbol引用阿里iconfont图标
  14. C语言作用域(变量生存的空间)学习
  15. STC89C52RC40I-LQFP44简介
  16. 怪兽大作战--解析网站打开慢的原因
  17. 在 Xcode 9 中搭建 Python 开发环境
  18. css绘制梯形 、直角三角形
  19. idc服务器租用和虚拟主机区别,云主机与虚拟主机及IDC(托管服务器)的区别
  20. SEO搜索引擎优化教程-传智-专题视频课程

热门文章

  1. python fun函数、求4x4整型数组的主对角线元素的和_python中多维数组中列major的numpy整形...
  2. python try exception类_python——异常类型
  3. java后端站内通知_正确使用Java事件通知
  4. Typora+PicGo-Core(command line)+SMMS、github、gitee实现Typora图片上传到图床
  5. f函数java_Java流:对N-1个元素执行f(),对N个元素执行g(),即,最后一个元素使用不同的函数...
  6. python3的格式化用法_浅析python3字符串格式化format()函数的简单用法
  7. python四大高阶函数_四大高阶函数
  8. pythondjango教程_Python 中Django安装和使用教程详解
  9. QlikSense导入oracle数据,【主流BI分析工具对比】12款顶级BI分析工具最佳用例
  10. java okhttp3 工具类,Retrofit+okhttp+Rxjava网络请求工具类