掏出了以前的小练习;

现在开始,每天复习下以前的爬虫练习,争取发现新的问题和可以优化的地方。

# -*- coding:utf-8 -*-
import requests
import chardet
import csv
from lxml import etree
import re def get_page(url):
user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0'
header = {'User-Agent':user_agent}
r = requests.get(url,headers=header)
r.encoding = chardet.detect(r.content)['encoding']
page = r.text
return page def parse_data(page):
result = []
html = etree.HTML(page)
next_url = html.xpath('//a[@class="nxt"]/@href')
if len(next_url) > 0:
next_url = next_url[0]
print(next_url)
sites = html.xpath('//*[@class="xld xlda cl"]') for site in sites:
title = site.xpath('.//a[@class="xi2"]/text()')[0]
author = site.xpath('.//p[@class="xg1"]/a/text()')[0]
theme = site.xpath('.//strong[@class="xi2"]/text()')[0]
r = site.xpath('./dl/dd[2]/p[2]/text()')[0]
sub_num,com_num =r.split(',')
com_num = com_num.strip()
sub_num = sub_num.strip()
content = (title,author,theme,sub_num,com_num)
result.append(content)
return result,next_url def main():
url = 'http://bbs.fishc.org/forum.php?mod=collection'
results = []
page = get_page(url)
result,next_url = parse_data(page)
results.extend(result)
q = True
while q:
if next_url:
page = get_page(next_url)
result,next_url = parse_data(page)
results.extend(result)
else:
q = False
headers = ['title','author','theme','sub_num','com_num']
with open(r'taotie.csv','w',encoding = 'utf-8') as f:
f_csv = csv.writer(f)
f_csv.writerow(headers)
try:
f_csv.writerows(results)
except UnicodeDecodeError as e:
print(e) if __name__ =="__main__":
main()

爬虫(一)爬取鱼c淘贴信息的更多相关文章

  1. 零基础爬虫----python爬取豆瓣电影top250的信息(转)

    今天利用xpath写了一个小爬虫,比较适合一些爬虫新手来学习.话不多说,开始今天的正题,我会利用一个案例来介绍下xpath如何对网页进行解析的,以及如何对信息进行提取的. python环境:pytho ...

  2. 开发记录_自学Python写爬虫程序爬取csdn个人博客信息

    每天刷开csdn的博客,看到一整个页面,其实对我而言,我只想看看访问量有没有上涨而已... 于是萌生了一个想法: 想写一个爬虫程序把csdn博客上边的访问量和评论数都爬下来. 打算通过网络各种搜集资料 ...

  3. [Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)

    转载自:http://blog.csdn.net/eastmount/article/details/51231852 一. 文章介绍 源码下载地址:http://download.csdn.net/ ...

  4. 学习用java基于webMagic+selenium+phantomjs实现爬虫Demo爬取淘宝搜索页面

    由于业务需要,老大要我研究一下爬虫. 团队的技术栈以java为主,并且我的主语言是Java,研究时间不到一周.基于以上原因固放弃python,选择java为语言来进行开发.等之后有时间再尝试pytho ...

  5. Python爬虫开源项目代码,爬取微信、淘宝、豆瓣、知乎、新浪微博、QQ、去哪网等 代码整理

    作者:SFLYQ 今天为大家整理了32个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快 1.WechatSogou [ ...

  6. python爬虫爬取京东、淘宝、苏宁上华为P20购买评论

    爬虫爬取京东.淘宝.苏宁上华为P20购买评论 1.使用软件 Anaconda3 2.代码截图 三个网站代码大同小异,因此只展示一个 3.结果(部分) 京东 淘宝 苏宁 4.分析 这三个网站上的评论数据 ...

  7. 23个Python爬虫开源项目代码:爬取微信、淘宝、豆瓣、知乎、微博等

    来源:全球人工智能 作者:SFLYQ 今天为大家整理了23个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快 1.Wec ...

  8. 第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解

    第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解 封装模块 #!/usr/bin/env python # -*- coding: utf- ...

  9. 【Python】【爬虫】爬取酷狗TOP500

    好啦好啦,那我们来拉开我们的爬虫之旅吧~~~ 这一只小爬虫是爬取酷狗TOP500的,使用的爬取手法简单粗暴,目的是帮大家初步窥探爬虫长啥样,后期会慢慢变得健壮起来的. 环境配置 在此之前需要下载一个谷 ...

随机推荐

  1. DocCms_2016 代码审计

    0x00 结构浏览 按照代码审计的惯例,拿到这款cms之后首先浏览了一下目录结构,在基本了解之后,首先进入/index.php,这里包含了两个文件:/admini/config/qd-config.p ...

  2. ANT下载和配置 IDEA

    1.下载地址大全: http://archive.apache.org/dist/ant/binaries/ jdk与ant版本有对应关系,目前知道: jdk1.7与ant1.10不兼容,1.7必须用 ...

  3. tp3中子查询 逻辑条件是or

    直接用写sql最快 $map['_string'] = 'status=1 AND score>10'; //子查询条件字段不同 $condition['platform'] = 'swap'; ...

  4. Eclipse 热部署方式

    1.tomcat 热部署 1.1方法一:更改 server.xml,更改为 <Context docBase="dreamlive" path="/ROOT&quo ...

  5. iOS动画效果集合、 通过摄像头获取心率、仿淘宝滑动样式、瀑布流、分类切换布局等源码

    iOS精选源码 动画知识运用及常见动画效果收集 较为美观的多级展开列表 MUImageCache -简单轻量的图片缓存方案 iOS 瀑布流之栅格布局 一用就上瘾的JXCategoryView iOS ...

  6. iOS 中UIWebView的cookie

    有关cookie是什么,大家可以自行百度,本文我获得cookie的目的是得到一个userID. 下面的是代码. - (void)getUserIDFromCookie { NSHTTPCookieSt ...

  7. 105)PHP,递归删除目录

    Unlink(文件地址)删除文件.

  8. 企业框架-Spring

    1.什么是Spring Spring是最受欢迎的企业级Java应用程序开发框架,数以百万的来自世界各地的开发人员使用Spring框架来创建性能好.易于测试.可重用的代码. Spring框架是一个开源的 ...

  9. row_number over( partition by xx)

    在原始表中 新加一个临时列 去重, 排序 比多次join性能提高很多 http://www.mysqltutorial.org/mysql-window-functions/mysql-row_num ...

  10. 位移&二进制转换&原码&反码&补码

    << 左移 按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零. 格式 需要移位的数字 << 移位的次数 计算过程 1. 按二进制形式把所有的数字向左 ...