在抓取网页时遇到了一段报错信息:
|
1 2 3 4 5 6 |
Traceback (most recent call last): File "D:/pythonDevelop/spider/pic_grab.py", line 14, in <module> print(get("http://pp.163 |
在抓取网页时遇到了一段报错信息:
|
1 2 3 4 5 6 |
Traceback (most recent call last): File "D:/pythonDevelop/spider/pic_grab.py", line 14, in <module> print(get("http://pp.163 |
这一节看下如何抓取网页中的图片。目标网址是:http://pp.163.com/longer-yowoo/pp/10069141.html。这里有一组我非常喜欢的图片。
要抓取网页首先就要找出图片的网址。这里仍然是使用BeautifulSoup,具体如何使用在前一节《使用BeautifulSoup解析网页》时说过,现在就不说了。看下代码好了:
|
1 2 3 |
之前的内容已经大致实现了如何获取网页、分析网页、获取目标内容。接下来的目标是如何让网页抓取进行得更效率些。在进行抓取的时候,时间的消耗主要是在请求等待的时间上,所以一个最容易想到的优化方式就是使用多线程。
多线程的实现还是比较简单的,下面是一个简单的线程实现方案:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!python # encoding |
使用lambda表达式可以创建简洁的匿名方法。不过,有时候lambda表达式只是简单的调用了已有的方法。此时,使用方法引用无疑是一个更简洁易读的方案。
再来看看之前使用过的Person类:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
public class Person { &nbs |
使用intellij idea时想将一个文件或目录排除在版本控制外,却找不到add to ignore选项。在使用git时,可以直接编辑.ignore文件,但是还是觉得有些不方便。所以安装一个插件好了:settings –> plugins –> Browse repositories,搜索ignore,选第一个.ignore – VCS INTEGRAT…
前两天我维护的服务出了一个问题,在请求一个连接时发生了Exception:
|
1 2 3 4 5 6 |
Exception in thread "main" javax.net.ssl.SSLPeerUnverifiedException: Host name 'talkingdata.qccr.com' does not match the certificate subject provide |
在第一节演示过如何使用正则表达式截取网页内容。不过html是比正则表达式更高一级的语言,仅仅使用正则表达式来获取内容还是有些困难的。
这次会使用一个新的工具:python的BeautifulSoup库,BeautifulSoup是用来从HTML或XML文件中提取数据的工具。
BeautifulSoup需要先安装才能使用。关于BeautifulSoup安装和使用可…
这次尝试下怎样搜索电影并解析出磁力链接信息。
搜索的网址是:https://www.torrentkitty.tv/search/。
开始了!
使用FireFox打开上面的网址,输入要搜索的电影。在点击搜索按钮前记得打开FireBug,并激活“网络”页签。
查看了请求的详情有些哭笑不得:点击搜索按钮后网页跳转到了这样的地址:https://www.torrentki…
最近这段时间会有需要写一个网络爬虫。会在这里将实现网络爬虫的经验记录下来。
爬虫什么的,只是一个名字罢了。简单地说,也都是从http请求开始的。
Python实现http请求主要依赖的是urllib.request模块。例如发送http get请求:
|
1 2 3 4 5 |
from urllib import request url = 'http://www.zh |