【HTML】旅游地点随机选择器

本文介绍了一个使用Java编程实现的多线程应用,通过三个城市名交替显示并随机休眠,最终根据哪个城市完成任务决定旅行目的地。

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

程序实现的功能:

       选择三个城市(广州、北京和上海)作为预选旅游目标,实现三个独立的线程分别显示5次城市名,每次显示后休眠一段随机时间(1000毫秒以内),哪个城市最后显示完毕,就决定去哪个城市,并在控制台显示“我要去*!”,其中,*表示城市名称。

class MyThread implements Runnable{
	String city;
	public MyThread(String x) {
		city=x;
	}
	public void run() {
		try{
			for(int i=0;i<5;i++) {
				Thread.sleep((int)(1000*Math.random()));
				System.out.println("我要去"+city+"!");
			}
		}
		catch(InterruptedException e) {
			return;
		}
	}
}
public class Test7 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MyThread mt1=new MyThread("广州");
		MyThread mt2=new MyThread("北京");
		MyThread mt3=new MyThread("上海");
		new Thread(mt1).start();
        new Thread(mt2).start();
        new Thread(mt3).start();
	}
}

### 使用Python编写爬虫程序抓取去哪儿网旅游数据 #### 确定目标网站 选择去哪儿网作为目标旅游平台,该网站提供了丰富的旅游景点信息。为了确保合法性和道德性,在启动任何爬虫之前,建议先阅读并遵守去哪儿网的robots.txt文件以及服务条款[^1]。 #### 分析网页结构 利用浏览器开发者工具检查去哪儿网上旅游景点页面的具体构成,识别出包含所需信息(如景点名称、简介、开放时间和票价)的HTML标签及其属性。这一步骤对于定位具体要抓取的内容至关重要。 #### 编写爬虫代码 下面是一个简单的基于`requests`和`BeautifulSoup`库编写的Python脚本例子来实现这一功能: ```python import requests from bs4 import BeautifulSoup def fetch_travel_data(url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)', } response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, "html.parser") # 假设我们要获取的是所有的景点列表项 items = [] for item in soup.select('.list_item'): name = item.find('h3').get_text(strip=True) if item.find('h3') else None description = item.find(class_='desc').get_text(strip=True) if item.find(class_='desc') else '' opening_hours = item.find(text='开放时间:').find_next_sibling().strip() if item.find(text='开放时间:') else '' ticket_price = item.find(text='门票:').next_element.strip() if item.find(text='门票:') else '' items.append({ 'name': name, 'description': description, 'opening_hours': opening_hours, 'ticket_price': ticket_price }) return items ``` 此函数接收一个URL参数,并返回由字典组成的列表,其中每个字典代表单个景点的相关信息。注意这里的CSS选择器`.list_item`以及其他元素的选择方式需根据实际页面结构调整[^2]。 #### 存储数据 一旦成功收集到了所需的旅游景点信息,就可以考虑将其保存下来以便进一步处理或长期存档。常见的做法是将这些数据导出成CSV文件或者直接插入到关系型数据库中去。这里给出一段简单地把结果保存为JSON格式的例子: ```python import json data = fetch_travel_data("https://www.qunar.com/") with open('travel_spots.json', mode='w', encoding='utf8') as f: json.dump(data, f, ensure_ascii=False, indent=4) ``` 这段代码会创建一个新的名为`travel_spots.json`的文件并将所有已抓取的数据序列化后写入进去。 #### 反爬虫策略与优化 为了避免触发反爬机制而遭到封锁IP地址等问题的发生,可以在请求之间加入随机延时;另外还可以模拟真实用户的浏览行为模式,比如设置合理的访问频率间隔等措施来降低被检测的风险。此外,使用代理服务器也是有效规避风险的方法之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值