逐条解释一段爬虫代码

<pre><code>
import urllib.request
from bs4 import BeautifulSoup

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/5.0.4.3000 Chrome/47.0.2526.73 Safari/537.36'}
x = 0

def imgs(url):
request_page = urllib.request.Request(url,headers = headers)
page = urllib.request.urlopen(request_page)
html = page.read()
soup_page = BeautifulSoup(html,"html5lib")
imgs = soup_page.find_all('img')
imgstr = ''
f = open(r'C:\Users\Administrator\Desktop\img\imgs.txt',mode = 'w')
for img in imgs:
link = img.get('src')
if not(link[:5] == "http:"):
continue
print(link)
global x
urllib.request.urlretrieve(link,'img%s.jpg'%x)
x += 1
imgstr += link +'\n'
f.write(imgstr)
f.close()
return 0

try :
url = 'http://www.archcollege.com/'
imgs(url)
except TypeError:
pass
</code></pre>

1段:导入URL和BS4库;
2段:声明基本数据,headers是从浏览器中Agent字段中复制的;x是下载到本地后图片的文件名;
3段:构建一个单独网页图片下载函数;先实例化一个request对象,python3中 urlopen函数在urllib.request.下,是request对象的方法,urlopen函数返回一个response对象,response对象有read方法,read方法返回一个HTML的流,有可能是比特流也可能是str流。
有了这个流就可以创建BeautifulSoup对象。
使用BeautifulSoup对象的find_all方法,返回某个标签的列表,然后遍历这个列表。
可以将遍历内容写进一个文件里,也可以打印出来观看,只要是为了进一步分析需要的URL。
4段:执行这个函数,现在网站有很多反爬虫方法,为了简便,只捕捉一种TypeError异常。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容