我的第一个爬虫程序

本文介绍了作者初次尝试Python爬虫,选择纵横中文网的小说《神魔武帝》作为目标,通过requests和xpath进行网页抓取和解析。在解析过程中遇到并解决了章节内容保存时出现的异常问题,最终成功将小说内容存入文件。总结中强调了编程实践、思维开阔和多尝试的重要性。
摘要由CSDN通过智能技术生成

爬取“纵横中文网”里的小说

最近开始迷上Python了,当然,最让我着迷的还是它的代码风格,用一句话形容:干净利索脆。
由于我有一些VB基础,现在学Python感觉特别的轻松。
必须要强调一句:兴趣是最好的老师
既然学写爬虫,先给自己定一个小目标:爬一本小说好了。
从“纵横中文网”里找了部章节少的《神魔武帝》练手,
别看就简简单单爬取一部小说,中间还是闹了不少“妖娥子”。

1、万年不变的开头

肯定是以import开始了,费话太多了,看代码吧!

import requests
from lxml import etree
headers = {
   
    "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 UBrowser/4.0.3214.0 Safari/537.36"
}

我使用的是requests库,当然urllib库也一样的,萝卜咸菜各有所爱。
差点忘了说,我使用的是Python3.7版本。
由于我喜欢用xpath来解析,所以就加载了lxml库。至于BS4,pyquery同样那句话:萝卜咸菜各有所爱
一个标准爬虫,还是在爬取网页时加上headers吧!

url = 'http://book.zongheng.com/showchapter/845503.html'
response = requests.get(url,headers=headers)
html = etree.HTML(response.content)

同样是标准的写法&#

编写一个简单的C语言爬虫程序通常涉及到网络请求、数据解析和文件操作等基本步骤。由于C语言本身并不内置支持HTTP请求库,通常我们会使用第三方库如libcurl或cURL接口来进行网络通信。这里是一个基础的示例,它使用cURL库获取HTML内容: ```c #include <stdio.h> #include <curl/curl.h> // 定义函数来处理回调,接收服务器返回的数据 size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata) { FILE *fp = (FILE *)userdata; return fwrite(ptr, size, nmemb, fp); } int main() { CURL *curl; CURLcode res; FILE *file; // 初始化cURL curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_init(); if(curl) { // 设置目标URL curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); // 替换为你想要抓取的网页地址 // 打开文件用于保存响应 file = fopen("output.html", "wb"); if(file) { // 设置写入数据的回调函数 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, file); // 发送请求并接收响应 res = curl_easy_perform(curl); // 检查请求是否成功 if(res != CURLE_OK) fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); // 关闭文件 fclose(file); // 清理资源 curl_easy_cleanup(curl); } } // 全局初始化清理 curl_global_cleanup(); return 0; } ``` 请注意,这只是一个非常基础的例子,实际的爬虫可能会更复杂,需要处理异步请求、错误处理、数据提取以及可能的反爬机制。同时,很多现代网站为了防止爬虫,会设置robots.txt规则或者采用复杂的动态加载技术,因此遵守网络礼仪并尊重网站规定是非常重要的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦田(wanao)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值