学习爬虫的day02 (用线程去爬虫 提高速度)

本文介绍了一种利用Python的lxml库解析HTML的方法,并通过爬虫抓取了招聘网站上关于Python职位的信息,包括职位链接及名称等。示例代码展示了如何设置请求头、使用XPath提取数据并保存至本地。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过lxml的方式去分析数据,将爬到的数据放到file中的html中

代码如下

# 用线程去爬虫
from urllib.request import Request from urllib.request import urlopen from time import sleep,ctime from lxml import etree import _thread; ii=0 headers = {'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'} def spilder(page): global ii; url = "http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%%E5%%8C%%97%%E4%%BA%%AC&kw=python&sm=0&p=%i"%(page); req = Request(url=url, headers=headers); req_timeout = 5; f = urlopen(req, None, req_timeout); s = f.read(); s=s.decode("UTF-8"); s=str(s) selector = etree.HTML(s); links = selector.xpath('//tr/td[@class="zwmc"]/div/a/@href|//tr/td[@class="zwmc"]/div/a/text()'); f=open("file/%i.html" %page,'w') for link in links: f.write("%s<br>"%link); print(link); ii+=1; print(ii) f.close(); def main(): global ii; for i in range(1,11): _thread.start_new_thread(spilder,(i,)) for kk in range(15): if(ii>9): break; else : sleep(2) main()

会出错,socket.timeout: timed out
可以通过代理IP来解决

 

转载于:https://www.cnblogs.com/qieyu/p/7800918.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值