介绍
我们在很多地方都听到过这个词 爬虫 我的理解是它是来浏览网络中的数据进而爬取 最主要的是它是自动化的 也是程序的核心 即提高效率
应用场景
- 搜索引擎索引网页内容
- 抓取数据分析需要的数据
- 电商价格监控
- 社交媒体舆情分析
简单代码展示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| import requests from lxml import etree
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36' }
url = 'https://example.com'
response = requests.get(url, headers=headers)
if response.status_code == 200: html = etree.HTML(response.text) paragraphs = html.xpath('//p/text()') for p in paragraphs: print(p.strip()) links = html.xpath('//a/@href') for link in links: print(f"链接: {link}") articles = html.xpath('//div[@class="article"]') for article in articles: title = article.xpath('./h2/text()')[0] if article.xpath('./h2/text()') else "无标题" content = article.xpath('./p/text()') if article.xpath('./p/text()') else ["无内容"] print(f"标题: {title}") print(f"内容: {''.join(content)}") print("-" * 50) else: print(f"请求失败,状态码: {response.status_code}")
|
难点
现在的网站或多或少都有反爬机制 一方面这不是正常的用户访问请求 会给服务器造成很多额外开销 甚至是影响别人正常的使用 另一方面别人也不想把数据给你 所有都会做很多限制
目前的我的技术非常菜 仅限于简单的JS破解 再难一些的就不会了 所有到最后爬虫难点就在逆向 需要你对JavaScript有很深入的理解
使用爬虫时需要注意以下几点:
- 尊重网站的robots.txt规则
- 控制请求频率,避免对目标网站造成负担
- 不要抓取敏感或私人信息
- 遵守相关法律法规,不用于非法用途
- 获取到的数据要合理使用,尊重原创内容